我认为这听起来像你不理解如何将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