为什么beforeRender()被调用两次?

时间:2012-07-09 08:24:41

标签: php cakephp

我正在使用CakePHP 2.2.0,我有这个AppController:

<?php
    App::uses('Controller', 'Controller');

    class AppController extends Controller {
        public function beforeRender(){
           debug('test');
        }
    }
?>

和这个简单的自定义控制器:

<?php

App::uses('AppController', 'Controller');

class ProvidersController extends AppController {

    public function index(){
        debug('index');
    }

}

?>

我真的不明白为什么appController的beforeRender被调用两次...当URL到达ProvidersController的index()方法时,我在调试模式中看到两个“测试”字符串。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:2)

当我在代码中的其他地方有一个损坏的src时,我已经看到过这种行为。例如,如果找不到javascript文件,则会启动cake,导致逻辑再次运行。这可能解释了为什么你会看到像beforeRender()运行两次的方法。