2012-07-09 3 views
1

내가 CakePHP는 2.2.0를 사용하고 있는데 나는이 AppController가 있습니다beforeRender()가 두 번 호출되는 이유는 무엇입니까?

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

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

이 간단한 사용자 정의 컨트롤러 : AppController가의 beforeRender가 두 번 호출 왜 난 정말 이해가 안

<?php 

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

class ProvidersController extends AppController { 

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

} 

?> 

합니다. .. URL이 ProvidersController의 index() 메서드에 도달 할 때 디버그 모드에서 두 개의 "test"문자열이 나타납니다.

누군가 설명 할 수 있습니까?

+0

beforeRender에서'debug_print_backtrace()'를 호출하여 무엇을 호출하는지 알 수없는 이유는 확실하지 않습니다. – Dunhamzzz

+1

레이아웃을 위해'beforeRender'가 한 번,'$ content_for_layout' 전망); 아마도 이것이 그 것이다. – Ross

답변

2

코드의 다른 부분에 손상된 src가있는 경우이 동작을 보았습니다. 예를 들어 javascript 파일을 찾을 수 없으면 cake가 실행되어 논리가 다시 실행됩니다. 이것은 beforeRender()와 같은 메소드가 두 번 실행되는 이유를 설명합니다.

관련 문제