我根据网站结构的要求将我网站的html切成多个文件,并将它们全部保存为codeigniter的views文件夹中的视图。
我从公共控制器加载相同的内容:
$this->load->view($this->config->item('templates_path') . 'header', $this->data);
$this->load->view($this->config->item('templates_path') . 'navbar', $this->data);
$this->load->view($this->config->item('templates_path') . 'main-container', $this->data);
$this->load->view($this->config->item('templates_path') . $sidebar, $this->data);
$this->load->view($this->config->item('templates_path') . 'main-content', $this->data);
$this->load->view($this->config->item('templates_path') . 'breadcrumb', $this->data);
$this->load->view($this->config->item('templates_path') . 'page-content', $this->data);
$this->load->view($this->config->item('templates_path') . 'main-content-end', $this->data);
$this->load->view($this->config->item('templates_path') . 'footer');
$this->load->view($this->config->item('templates_path') . 'main-container-end', $this->data);
$this->load->view($this->config->item('templates_path') . 'bottom');
上面的一些视图文件在文件中只有很少的HTML标签,如: 查看文件
$this->load->view($this->config->item('templates_path') . 'main-content-end', $this->data);
只有
</div><!-- /.main-container -->
在codeigniter中有一种方法可以直接加载html部分而不将其创建为新的视图文件吗?
答案 0 :(得分:0)
在您的Views目录中创建一个文件夹,并将其称为“包含”或任何您想要的内容。
然后,您可以使用以下PHP在其他视图中包含这些HTML模板:
include('/path/to/include/file-to-include.php');
评论:
•文件的路径应该相对于视图文件
•包含的文件不必是.php文件,如果您愿意,它可以是HTML文件(或者如果您愿意,它可以包含PHP代码)
•我在本地安装的codeigniter中对此进行了测试,并按预期工作
答案 1 :(得分:0)
据我所知,创建一个视图&#39;文件&#39;是必需的,必须创建并包含html或php文件,load->view
部分只为你做,它就像包含一样,只有它会引入一些CI逻辑。
我通常为我的网站做的是创建一个函数my_Controller,名为&#39; mainTemplate&#39;,(名称可以变化)
function mainTemplate($views = null, $data)
{
$this->load->view('header',$data);
$this->load->view('breadcrumbs',$data);
//now some logic, if we have a string for a view, we just load the string
if(is_string($views)
$this->load->view($views,$data)
//if it's an array of views, we just iterate over the array and show each view
foreach ($views as $view)
{
$this->load->view($view,$data);
}
//and now the footer
$this->load->view('footer',$data);
}
现在您可以在控制器内部调用类似的内容:
$this->mainTemplate('pageContent',$data);
您可以为每个模板创建一个新功能,并包含每个模板所需的视图。所以我有一个登录模板,一个主页面模板,一个产品模板等。
希望它更接近你的要求。
答案 2 :(得分:0)
首先创建一个视图文件,如果是codeigniter,则将其存储在views文件夹中。 用于加载视图文件的语法
$this->load->view('filenane');
文件名不需要具有扩展名。 有关详细信息,请选择codeigniter
答案 3 :(得分:0)
在您的视图方面进行完整设计,然后使用以下代码加载您的视图
$this->load->view('filenane');
不要在文件名中使用扩展来加载你的视图只使用你的文件名。