我想从一个函数中加载多个视图,将页面分为3部分
header.php
index.php
footer.php
我正在这样做:
$this->load->view('templates/header', $data);
$this->load->view('index');
$this->load->view('templates/footer');
但是在这种情况下,如果我想添加一些jquery文件和footer.php,那是上述代码无法实现的。
我从许多文章中看到的另一种方式
在视图索引页面中使用包含功能,如下所示:
<?php include('header.php'); ?>
<?php include('footer.php'); ?>
但是,如果我在footer.php之后添加几个jquery文件,则可能在上面的代码(包括代码)中。
但是我喜欢这样load->view
,我可以根据需要使用它吗,或者Include函数最适合这个吗?
您可以从每个视图内部使用$ this-load-> view,而不仅仅是控制器。
因此,在index.php视图文件中,可以在顶部加载页眉,在底部添加页脚。
我根本不会include()
在CodeIgniter中使用。CI具有装载程序,可用于您需要在其中使用的所有内容。
更好的方法是定义一个可以加载模板的库或模型。这样,如果您要更改顶部或底部包含的文件,则无需更改每个视图。您甚至可以根据每个控制器使用此加载js,css,seo元数据等。
实现此目的的方法是(让我们走模型路线):
$data
可以定义键:js,css,seo,content等。$this->load->view('template', $data)
。在您的控制器中,将您的视图作为数据返回(例如index.php),并将其作为$data['content']
以下形式发送到模型:https : //www.codeigniter.com/user_guide/general/views.html#returning-views-as-data示例:
$this->load-model('templateModel', 'template');
$data['content'] = $this->load->view('index', '', TRUE);
$this->template->render($data);
在模型渲染的视图中,在应显示的位置打印内容(顺便说一下页眉和页脚)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句