2009-09-17 75 views
1

怎麼做的人一般處理條件語句中的MVC框架如何在MVC框架的視圖中顯示條件數據?

對於一些我的網頁(Kohana的下發),我希望用戶有更多的選擇,這取決於它們在或不是否登錄,以及配置文件是否是自己的例如自己的檔案。根據你自己的經驗,你是否創建了單獨的視圖,空變量,視圖中的邏輯還是什麼?

感謝

澤納

回答

2

這取決於視圖如何不同的樣子基於變量的值。例如,如果您只需要隱藏/顯示一些控件,我會在視圖中包含控件,在某些情況下這些控件是空的,並且在其他控件中包含數據。

如果它不止一個控件一次顯示/隱藏,並且您的框架支持「面板」的概念(視圖的可重用部分),我會將該組控件分隔成一個面板並顯示/根據條件隱藏該面板。

這裏的權衡是在「清潔」(您是否將兩個視圖合併在一起的視圖組件中)與「易於更新」(如果兩個視圖是共同演變的,您是更新兩個位置還是一個? )

2

對我個人而言,我會將信息傳遞給視圖來指示要顯示哪些視圖片段,因爲我認爲顯示/隱藏顯示元素是一種視圖邏輯。

在Kohana的情況下,如果您要將$ user變量傳遞給作爲User_Model對象的視圖,即使未加載某個人,該對象仍然存在,因此您可以在視圖中編寫代碼如:

<?php if ($user->logged_in()):?> 
<div>Some login only markup here</div> 
<?php else:?> 
<div>some not login only markup here</div> 
<?php endif;?> 

您的里程取決於如果你劃痕使用,而不是寫作模式的ORM或其他ORM樣庫也可能會有所不同。

相關問題