codeigniter 解析模板中的内容
Posted
技术标签:
【中文标题】codeigniter 解析模板中的内容【英文标题】:codeigniter parse content in template 【发布时间】:2016-04-14 13:29:15 【问题描述】:谁能帮我解释一下在codeigniter中以哪种方式组织视图最好,并制作一些页眉和页脚相同但内容为每个页面更改的模板?我使用解析将数据从控制器发送到视图,但不知道如何以所述方式组织视图。
还有如何避免视图中的php逻辑(如果)?
【问题讨论】:
【参考方案1】:如果您不使用模板库,有两种方法:
1.在内容视图中请求您的部分视图:
<?php $this->load->view('header') ?>
My content
<?php $this->load->view('footer') ?>
2。创建一个布局视图,将内容作为变量传递:
<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
、foreach
在模板中是可以的。例如,如果用户已登录,则显示菜单。
【讨论】:
谢谢,我现在试试第二种方法。对于使用解析器时如何使用的逻辑,现在我将视图中的变量打印为 name、lastname、city,但是如何说 if active==1 echo active else echo non-active?<?php echo ($active == 1 ? 'active' : 'non-active') ?>
您必须将活动变量传递给您的视图:$this->load->view('page', array('active' => true));
我这样做了,我列出了所有正常的,甚至是活动的,但在 if 语句中显示错误。
我尝试使用 if active == 1 active /if,但不起作用【参考方案2】:
这可能会帮助您了解模板。
控制器:
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);
注意:假设模板是您的视图文件夹中的一个目录。在你的模板中必须有 header、content 和 footer.php 文件。
【讨论】:
以上是关于codeigniter 解析模板中的内容的主要内容,如果未能解决你的问题,请参考以下文章
codeigniter 4 设置会话变量 $session = \Config\Services::session();全球
要使用codeigniter框架还是标准的php? [关闭]