kil*_*zzy 1 php templates codeigniter views
尝试学习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');
Run Code Online (Sandbox Code Playgroud)
这是有道理的,但我真的会在每个控制器(页面)上都有这个吗?不确定是否有办法在初始控制器(欢迎)中包含这个,然后在其他人以某种方式引用它?或者也许我完全缺少一些东西
您可以从视图文件中加载视图.例如,考虑一个名为的通用页面模板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>
Run Code Online (Sandbox Code Playgroud)
通过使用codeigniter的abiltiy来加载更动态的区域,以将视图作为变量返回到控制器中:
$template['content'] = $this->load->view('content',$data,TRUE);
$this->load->view('page_template',$template);
Run Code Online (Sandbox Code Playgroud)
通过将TRUE传递给加载函数,CI将从视图返回数据而不是输出到屏幕.
你的sidenav部分可能是它自己的视图文件sidenav.php,你的'块'硬编码或加载类似于上面的例子.
我已经完成了两种方式,包括每个控制器方法中的每一个视图位,以及使用加载子视图和动态区域的页面模板,到目前为止,第二种方法让我更快乐.