我認爲這聽起來像你不理解如何將MVC應用於你的結構。用這種方式來描述:
控制器代表了用戶可以與之交互的應用程序的某些方面。例如,我可以有一個items
控制器,它允許用戶創建,讀取,更新或刪除items
。所有與items
交互的邏輯都由該控制器處理(這意味着它調用items
模型並呈現必要的視圖)。
就您而言,您聽起來像是在構建一個處理顯示用戶可能呼叫的特定頁面內容的pages
控制器。所以,你的控制器可看起來像這樣:當你處理複雜的網站,有重疊
class Page extends CI_Controller {
public function index()
{
// Logic to render home page
}
public function about()
{
// Logic to render the about page
}
// ... etc ...
查看可以得到一個有點棘手。我一直髮現的最有用的技巧之一是使用仿真庫來減少冗餘。這是我一直使用的那個:http://williamsconcepts.com/ci/codeigniter/libraries/template/reference.html。使用模板庫,您可以輕鬆定義包含頁眉和頁腳的佈局,然後只傳入要顯示的內容的部分內容。
當你想處理類似於菜單的邏輯時,你需要做的就是傳入一個帶有頁面名稱的變量,然後做一些基本的PHP渲染菜單。
// Say we pass in a variable called $current to our view
// $current contains the name of the current page
// So say $current = 'About' for this example.
$sitemenu = array(
array('/', 'Home'),
array('/about', 'About'),
array('/help', 'Page 2'),
array('/contact', 'Page 3')
); ?>
<nav>
<ul>
<?php foreach($sitemenu as $page) { ?>
<?php if($current == $page[1]) { ?>
<li class="current"><a href="<?php echo $page[0]; ?>"><?php echo $page[1]; ?></a></li>
<?php } else { ?>
<li><a href="<?php echo $page[0]; ?>"><?php echo $page[1]; ?></a></li>
<?php } ?>
<?php } ?>
</ul>
</nav>
希望這有助於!
我認爲你應該在這裏放一些代碼,因爲答案可能因你的代碼而異。 – ramono