尝试学习 CI 并浏览文档以获得更好的理解。如果没有单独的库,我可以通过包含视图列表来制作模板,如下所示:
$this->load->view('header');
$this->load->view('navigation');
$this->load->view('sidenav_open');
$this->load->view('blocks/userinfo');
$this->load->view('blocks/stats');
$this->load->view('sidenav_close');
$this->load->view('content',$data);
$this->load->view('footer');
这是有道理的,但我真的会在我的每个控制器(页面)上都有它吗?不确定是否有办法将其包含在初始控制器中(欢迎),然后在其他控制器中以某种方式引用它?或者也许有一些我完全想念的东西
您可以从视图文件中加载视图。例如,考虑一个名为的通用页面模板page_template.php
:
<html>
<body>
<div id = "header">
<?php $this->load->view('header');?>
<?php $this->load->veiw('navigation');?>
</div>
<div id = "sidenav">
<?php $this->load->view('sidenav');?>
</div>
<div id = "content">
<?php echo $content;?>
</div>
<div id = "footer">
<?php $this->load->view('footer');?>
</body>
</html>
通过利用 codeigniter 的功能来加载更动态的区域,将视图作为控制器中的变量返回:
$template['content'] = $this->load->view('content',$data,TRUE);
$this->load->view('page_template',$template);
通过将 TRUE 传递给加载函数,CI 将从视图返回数据而不是输出到屏幕。
您的 sidenav 部分可能是它自己的视图文件 sidenav.php,其中您的“块”被硬编码或加载,类似于上面的示例。
我已经用两种方法完成了这件事,包括每个控制器方法中的每一个令人讨厌的视图,以及通过使用加载子视图和动态区域的页面模板,到目前为止,第二种方法让我更高兴。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)