CakePHP执行两次.ctp文件

时间:2011-11-20 04:35:09

标签: cakephp ctp-file

我正在使用CakePhp构建一个与Linkedin API接口的应用程序。我有一个简单的页面,在一个GET变量中给出一个linkedin成员ID,在一个会话变量中给出一个Application Authentication令牌。页面控制器应该对API&amp ;;进行cURL调用。设置$ connection变量,完成控制器代码,然后显示* .CTP。

但是,发生了什么。控制器是否一次执行没有问题,然后执行* .CTP文件没有问题。然后执行控制器AGAIN这次没有成功从linkedin API中提取数据,然后执行* .CTP文件AGAIN在调试日志中创建各种错误“通知”。奇怪的是,即使调试日志显示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文件一次?有人知道会发生什么吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

问题不在于CAKE。它是由* CTP文件中的错误img src导致浏览器加载页面两次引起的。见讨论: page loads twice in Google chrome

答案 1 :(得分:0)

这个问题可能是由导致CakePHP中的标准错误处理的问题引起的,在这种情况下,它首先调用您的函数,然后显示错误消息。