CakePHP에서 <body>
에 $content_for_layout
이 포함 된 default.ctp가 프레임 HTML을 처리한다고 가정 해 보겠습니다. 대부분의 페이지는 mysite.com
입니다. 그러나 mysite.com/account/
내의보기가 탐색 바를 공유해야한다고 가정 해 봅시다. 계정 영역에서의 견해에 대한 적절한 접근 방법은 무엇입니까?CakePHP 탐색 표시 줄
A)를 탐색 모음 자신의 요소를 확인하고,이 요소는 각 뷰에 포함됩니다 :
<!-- settings.ctp, profile.ctp, myfiles.ctp ... -->
<div id="account_area">
<?php echo $this->element('account_nav'); }
<div>...</div>
</div>
내가 정말) A의 같이 할 것은 각 .ctp이 같은 포장 코드를 복제한다는 것입니다 (그러나 최소). 그래서 아마도 B 같은)은 더 :
B) 뷰 account/index.ctp
를 작성하고 각 작업은 $section
변수를 설정하고 $this->render('/account/index')
을, 자신의 요소에 각 화면을 배치 :
<!-- /views/account/index.ctp -->
<div id="account_area">
<div id="account_nav">...</div>
<?php echo $this->element("account/$section"); }
</div>
C) 뭔가 다른
감사합니다, 브라이언
감사합니다. 옵션 B도 유효한 접근법으로 간주됩니까? 내 응용 프로그램에는 이러한 종류의 기능이 필요한 방식이 꽤 많이 있으며, 레이아웃 자체를 표현하는 데 많은 논리가 필요할 수도 있습니다. – Brian
물론입니다. 그러나 IMO, 언제든지'render()'를 사용합니다. 더러운 느낌이 들었습니다. 설명에서 옵션 B가 더 많은 설정을 필요로하는 것 같았습니다. –