我想创建MVC中几个视图页面中包含的公共页眉和页脚。
我想在我的项目中使用codeigniter。大多数人建议我在ci中使用require_once
php函数。但是,我该怎么办?
有人可以通过逐步程序在视图文件中包含一次require。 通过Controller,我们可以使用如下: -
public function home(){
$this->load->view('templates/header');
$this->load->view('about');
$this->load->view('templates/footer');
}
public function about(){
$this->load->view('templates/header');
$this->load->view('index');
$this->load->view('templates/footer');
}
我们如何使用require_once
来查看ci中的视图页面?
答案 0 :(得分:0)
控制器
public function home(){
$this->load->view('index');
}
public function about(){
$this->load->view('about');
}
索引视图
$this->load->view('templates/header');
// Code of index file
$this->load->view('templates/footer');
答案 1 :(得分:0)
在阅读完您的问题之后,我认为您希望使用包含菜单,页脚等的基本样式制作母版页或布局。
假设你有一个html页面
<html>
<head>
<title> Hello World </title>
</head>
<body>
<div id="menu">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</div>
<div id="main-content">
<!-- this is the dynamic part -->
</div>
<div id="footer">
Copy Right 2013 Hello World
</div>
</body>
</html>
您可以将其拆分为1-标题2-菜单3-主要内容4页脚
你基本上把
<html>
<head>
<title> Hello World </title>
</head>
<body>
in one view called "view_header" then you put
<div id="menu">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</div>
<div id="main-content">
in a view called "view_menu" and then you put
</div>
<div id="footer">
Copy Right 2013 Hello World
</div>
</body>
</html>
在名为“view_footer”的视图中,然后在您的控制器中
$this->load->view('view_header');
$this->load->view('view_menu');
$this->load->view('YOUR_VIEW');
$this->load->view('view_footer');
另一个解决方案,我认为更好:创建一个名为view_template_1.php的视图
<html>
<head>
<title> Hello World </title>
</head>
<body>
<div id="menu">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
</div>
<div id="main-content">
<?php $this->load->view($content); ?>
</div>
<div id="footer">
Copy Right 2013 Hello World
</div>
</body>
</html>
控制器中的表示您要调用名为About
的视图$data = array('content'=>'about');
$this->load->view('view_template',$data);