【问题标题】:CakePhp Plugin: Problems with routingCakePhp 插件:路由问题
【发布时间】:2012-11-10 02:37:30
【问题描述】:

好吧,我挣扎了 2 个小时,试图找出这不起作用。 问题: 我在插件文件夹中有一个插件 PaypalIpn。该插件有一个控制器 InstantPaymentNotificationsController 和里面的一些动作。

如果我尝试使用 /paypal_ipn/instant_payment_notifications 直接访问插件的控制器,Cake 会说没有 Paypal 控制器。 好吧,我添加了一条路线:

Router::connect('/paypal_ipn/:action/*', array( 'plugin' => 'paypal_ipn', 'controller' => 'instant_payment_notifications', 'action' => 'index'));

并惊讶于网络服务器冻结并在 httpd.log 中触发此错误

PHP Fatal error:  Allowed memory size of -2147483648 bytes exhausted (tried to allocate 320596 bytes) in libCake2.3/Cake/Error/ErrorHandler.php on line 114

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    根据plugin's installation notes,路由应该是:

    Router::connect('/paypal_ipn/process',
        array('plugin'     => 'paypal_ipn',
              'controller' => 'instant_payment_notifications',
              'action'     => 'process'
        )
    );
    

    这不是你所拥有的。

    另外,请确保您拥有最新版本。面包店的文章是 2009 年的,是一个非常旧的版本。

    【讨论】:

    • 没关系。我为Cake 2.0修改了那个插件。我只使用助手。事实是我无法访问插件的控制器方法,例如 index.
    • 当然。但问题是服务器“冻结”,就像陷入耗尽内存的无限循环。
    • 是的。这听起来像是无限重定向,这意味着routes.php 有问题。去掉 PayPalIPN 的路由能正常工作吗?
    • 好吧,如果我删除 PayPal IPN,我将无法再访问控制器的操作,Cake 会抱怨“缺少控制器/操作”错误。我不知道(现在)是什么导致了这个问题......
    猜你喜欢
    • 2012-04-09
    • 1970-01-01
    • 2012-03-03
    • 2012-11-28
    • 2016-04-07
    • 2016-07-18
    • 2011-05-18
    • 1970-01-01
    相关资源
    最近更新 更多