我正在使用CakePhp构建一个与Linkedin API接口的应用程序。我有一个简单的页面,它在GET变量中提供了linkedin members ID,在会话变量中提供了Application Authentication token。页面控制器应该对API进行cURL调用&设置一个$connection变量,完成控制器代码,然后显示*.CTP。
然而,正在发生的事情。是控制器执行一次没有问题,然后执行*.CTP文件没有问题。然后再次执行控制器,这次没有成功地从linkedin API中提取数据,然后再次执行*.CTP文件,在调试日志中创建各种错误“通知”。奇怪的是,即使调试日志显示CAKE无法设置$connection变量,但在呈现页面时,基于该变量的数据仍会正确显示。
我使用了Debugger::Log('xxx')标志来指示何时执行控制器和*.CTP的开始和结束。下面是页面上一次刷新的调试日志
2011-11-20 04:16:23 Debug: "START controller function"
2011-11-20 04:16:24 Debug: "End controller function"
2011-11-20 04:16:24 Debug: "START the .ctp"
2011-11-20 04:16:24 Debug: "END the .ctp"
2011-11-20 04:16:25 Debug: "START controller function"
2011-11-20 04:16:26 Debug: Notice (8): Undefined variable: connection in [C:\wamp\www\ta\app\controllers\reviews_controller.php, line 100]
2011-11-20 04:16:26 Debug: "End controller function"
2011-11-20 04:16:26 Debug: "START the .ctp"
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 7]
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 36]
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 41]
2011-11-20 04:16:26 Debug: Notice (8): Trying to get property of non-object in [C:\wamp\www\ta\app\views\reviews\write_review.ctp, line 43]
2011-11-20 04:16:26 Debug: "END the .ctp"页面实际上呈现得很好。我只是想理解为什么CAKE会运行*.CTP文件两次(它没有重定向),并在调试文件中创建所有的错误通知。我认为Cake运行控制器函数,并且只有当控制器到达末尾时,才运行一次*.CTP文件?有人知道会发生什么吗?
谢谢!
发布于 2011-11-20 21:29:53
这个问题可能是由CakePHP中的标准错误处理引起的,在这种情况下,它首先调用您的函数,然后显示一条错误消息。
https://stackoverflow.com/questions/8199484
复制相似问题