在CakePHP中,我們假設default.ctp只是構建HTML,其中<body>
僅包含$content_for_layout
。這對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
當然。但國際海事組織,任何時候我使用'render()'我覺得骯髒:)從你的描述看來,選項B似乎需要更多的設置。 –