2012-06-09 2 views
1

현재보기에 JS 파일을 포함하는 구성 요소 + 도우미 쌍을 작성 중입니다.CakePHP 구성 요소와 헬퍼 사이의 논리

아이디어는보기 (또는 작업)와 이름이 같은 JS 파일을 자동로드하는 것입니다. 따라서 'admin_add.ctp'라는 뷰와 'admin_add.js'라는 파일이 같은 폴더에 있으면 JS 파일이 JS 버퍼에 포함됩니다. 나는 이것이 beforeRender 호출에서 자동으로 발생하기를 원합니다.

까다로운 부분은 Controller :: action 수준 (구성 요소 사용)에서 자동로드를 활성화/비활성화 할 수 있어야하지만 포함 수준은 도우미와 함께보기 수준에서 발생해야한다는 것입니다.

각 뷰 템플릿에 코드를 작성하지 않고 구성 요소에서 도우미로 활성화/비활성화 트리거를 전달하는 방법은 무엇입니까?

답변

0

이 문제는 구성 요소에서 controller-> helper [ 'helperName'] 배열을 수정하여 해결되었습니다.

도우미는 beforeRender 호출 후에 인스턴스화되므로 도우미에 대한 설정을 수정하고 Helper :: __ contruct ($ View, $ settings) 호출에서 데이터에 액세스 할 수 있습니다.

이 콜백 순서를 유지하기 위해 CakePHP의 내부 구조를 의지 할 수 있는지는 확실하지 않지만 지금까지는 작동합니다.

+0

자동로드를 원할 때 헬퍼를 배열에 추가하기 만하면됩니다. 또한, 이미 (구성 요소가 없어도) 그런 것들이 있습니다 : https://github.com/predominant/goodies –

관련 문제