有人可以帮我解释一下哪种方式最好在codeigniter中组织视图,并制作一些模板,其中页眉和页脚将相同但每个页面的内容都要更改?我使用parse从控制器发送数据到视图,但不知道如何以描述的方式组织视图。
另外如何避免视图中的php逻辑(如果)?
答案 0 :(得分:0)
如果您没有使用模板库,有两种方法:
<强> 1。在您的内容视图中请求您的部分观看次数
function setDimensions(obj) {
obj.css('position', 'absolute');
obj.css("left",parseInt(obj.css("left")) / ($container.width() / 100)+"%");
obj.css("top",parseInt(obj.css("top")) / ($container.height() / 100)+"%");
obj.width(((obj.innerWidth() - obj.css('borderWidth')) / $container.width()) * 100 + '%');
obj.height(((obj.innerHeight() - obj.css('borderWidth')) / $container.height()) * 100 + '%');
}
<强> 2。创建布局视图,将内容作为变量传递:
<?php $this->load->view('header') ?>
My content
<?php $this->load->view('footer') ?>
在这种情况下,在您的控制器中:
<html>
<body>
<?php echo $content ?>
</body>
在询问逻辑时,不要过于严格。 // The true parameter means it will load the view, but just pass back as a string
$content = $this->load->view('mycontent', array(), TRUE);
// Display the layout with your content
$this->load->view('layout', compact('content'));
,if
,for
在模板中没问题。例如,如果用户已登录,则显示菜单。
答案 1 :(得分:0)
这可能对你有关模板的帮助。
控制器:
public function index() {
$data = array(
'blog_title' => 'Home',
'blog_content' => 'Content goes here..',
'footer_data' => 'footer data here..'
);
$this->load->view(templates/header, $data);
$this->load->view(templates/content, $data);
$this->load->view(templates/footer, $data);
}
注意:假设模板是views文件夹中的目录。模板内部必须是header,content和footer.php文件。