컨트롤러 내에서 레이아웃의 $ scripts_for_layout을 설정하고 싶습니다. 가능합니까? 그렇다면 어떻게됩니까?
답변
짧은 대답 : 아마도 잘못하고있는 것일 수 있습니다.
긴 대답 : 스크립트는 컨트롤러에 의존해서는 안됩니다. '이론적으로'잘못 됐어. 케이크는 mvc 패턴을 따르지 않는 사람들을 좋아하지 않는다.
해결 방법 (가끔은 그냥해야하기 때문에) : 당신은 VAR beforeRender에서 설정할 수 있습니다
function beforeRender() {
parent::beforeRender();
$this->set('scripts', array('script1', 'script2' ...));
}
그리고 레이아웃 검사에서
$를위한 스크립트를 추가 할 수 있습니다.당신이 그것을 말하는 것이므로, 나는 그것이 잘못하고있는 것을 이해합니다. 모든보기에서 스크립트가 필요 없으며 컨트롤러 파일을 사용하는 것이 더 명확 할 것이라고 생각했습니다. 따라서 편집 할 파일이 하나뿐입니다. – kaklon
다른 레이아웃을 사용해도 좋을지도 모릅니다. 수년 동안 나는 그 케이크를 해보려 고 노력하는 모든 것이 나를 잘못되게 만들었거나 MVC를 따르지 않는다는 것을 알게되었습니다. 케이크도 훌륭하고 깨끗하고 구조화 된 코드를 작성해야하기 때문에 멋지다. –
케이크 1.2에서는 $this->set('script_for_layout', 'script here...)
을 할 때이 변수를 $ scriptForLayout으로 변환하여 작동하지 않도록합니다.
Cake 1.3에서는이 문제가 해결되었지만 작동하는지 여부는 확인하지 않았지만 컨트롤러 수준에서 설정되지 않은보기 용 스크립트이기 때문에 MVC를 위반하는 것입니다. 동적 스크립트의 경우 이전 포스터에서 제안한 것처럼 뷰에 변수를 할당 할 수 있습니다.
저는 이것이 오래된 질문이라는 것을 압니다 만, 오늘도 똑같은 문제가있었습니다. 해결책은 여기에 언급 된 답변보다 쉽습니다. CakePHP 1.2 요리 책 :
인라인 : 블록을 인라인으로 인쇄할지 아니면 나중 출력 (예 : $ scripts_for_layout)을 위해 캐싱할지 지정합니다.
그래서보기에 당신은 다음과 같이 인라인가 거짓으로 설정 스크립트를 포함해야합니다
$javascript->link('script1', false)
당신은 CSS에 대해 동일한 작업을 수행 할 수 있습니다
$html->css('stylesheet1', null, array(), false)
주의 : 나는 이것을 CakePHP 1.2에서만 테스트했다. 그러나 1.3을위한 요리 책에 따르면, 그것은 같은 것이다.
- 1. 컨트롤러 동작 내에서 debug_kit 해제, Cakephp
- 2. 매크로 내에서 전처리 조건을 설정할 수 있습니까?
- 3. CakePHP 1.3 - 컨트롤러 덤프
- 4. 레일즈 - 자바 스크립트 함수 내에서 Rails 변수를 설정할 수 있습니까?
- 5. CakePHP 확장 컨트롤러 (전용)
- 6. 실제적인 CakePHP 컨트롤러 테스트?
- 7. CakePHP 컨트롤러 작업에만 액세스 할 수 있습니다.
- 8. 컨트롤러 전체에 사용자 정의 ModelBinder를 설정할 수 있습니까?
- 9. 어떻게 내비게이션 컨트롤러 하단 툴바에 배경 이미지를 설정할 수 있습니까?
- 10. 내 탐색 컨트롤러 버튼의 색상을 어떻게 설정할 수 있습니까?
- 11. CakePHP - 사용자 지정 루트 컨트롤러
- 12. 컬러 테마 내에서 rgba 색상을 설정할 수 있습니까
- 13. CakePHP : 모델에서 현재 컨트롤러 이름을 얻으십시오.
- 14. 상수 값은 앱 컨트롤러 내에서 수정할 수 있습니까?
- 15. 내 컨트롤러 동작 내에서 HttpContextBase에 액세스 할 수 있습니까?
- 16. 모델과 컨트롤러 모두에서 cakephp 확인
- 17. CakePHP -보기 및 모델이없는 컨트롤러
- 18. cakePHP의 컨트롤러 내에서 페이지 매김 기 페이지를 설정하는 방법
- 19. "탭 컨트롤러 내 탐색 컨트롤러 내에서 모달 컨트롤러 표시"문제
- 20. 컨트롤러 내에서 도우미 메서드 사용
- 21. Ajax 응답 내에서 Cakephp jquery 디버그 정보
- 22. 보기에서 컨트롤러 (Cakephp)에 배열을 전달하십시오.
- 23. Cakephp : 컨트롤러 동작에서 hasMany/belongsTo 관계 유지
- 24. WP7에서 북마크를 설정할 수 있습니까?
- 25. @property를 비공개로 설정할 수 있습니까?
- 26. JTree에 색상을 설정할 수 있습니까?
- 27. 알람 시계를 설정할 수 있습니까?
- 28. BarButton에서 UITableViewCellAccessoryCheckmark를 설정할 수 있습니까?
- 29. Android에서보기의 투명도를 설정할 수 있습니까?
왜이 작업을 원하십니까? 모든 액션에 포함 된 스크립트라면 레이아웃에 넣을 것입니다. 그것이 특정 행동에만있는 것이라면 나는 그것을 견해에 넣을 것입니다. –
당신 말이 맞아요, 이해합니다 (아래의 설명에서 더 긴 mea culpa) – kaklon