1
我使用CakePHP的2.2.0和我有這樣的AppController:爲什麼beforeRender()被調用兩次?
<?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()方法時,我會在調試模式下看到兩個「測試」字符串。
有人能解釋嗎?
不知道爲什麼,你可以在beforeRender中嘗試'debug_print_backtrace()'看看是什麼調用它.. – Dunhamzzz 2012-07-09 10:54:49
有些人建議''beforeRender'一次觸發佈局,一次觸發'$ content_for_layout'(視圖);或許就是這樣。 – Ross 2012-07-09 12:33:27