在我的应用程序中,页眉和页脚部分几乎总是静态的。中间部分包含我加载到视图的动态数据,然后将其附加到页眉和页脚视图。
示例:
view / header:
<html>
<head><titile>My App</title></head>
<body>
查看/页脚
</body>
</html>
控制器
public function page1($contents){
$page = $this->load->view('header',null,true);
$page .= '<div>' . $contents . '</div>';
$page .= $this->load->view('footer', null, true);
echo $page;
}
上面的示例可能看起来过于简单,但是当我的静态视图不仅仅是页眉和页脚时,每当我需要构建视图时,代码就变得非常冗余。有没有办法在函数中简化这个? (最好在图书馆中创建一个类)
答案 0 :(得分:0)
你可以在CORE中创建一个MY_controller扩展并在那里定义一个函数,但是如果你喜欢它在LIBRARY中,那么创建一个这样的类:
Class Viewer(){
public function __construct(){
// CREATE AN INSTANCE OF THE CONTROLLER CLASS LIBRARY
$this->CI =& get_instance();
}
// Where $content is your dynamic content from another view;
public function final_view($content){
$final_view = $this->CI->load->view('header',null,true);
$final_view .= $content;
$final_view .= $this->CI->load->view('footer',null,true);
return $final_view;
}
}
在您的控制器上,重新使用上面的代码:(假设您已自动加载库查看器auto-loading in CodeIgniter);
public function page1($contents){
$dynamic_content = '<div>' . $contents . '</div>';
echo $this->viewer->final_view($dynamic_content);
}
在不同的功能上,您可以执行相同的操作
public function page2($more_contents){
$dynamic_content = '<h1>' . $more_contents . '</h1>';
echo $this->viewer->final_view($dynamic_content);
}
如果这有帮助,请告诉我!