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'));

在询问逻辑时,不要太严格。 ifforforeach 在模板中是可以的。例如,如果用户已登录,则显示菜单。

【讨论】:

谢谢,我现在试试第二种方法。对于使用解析器时如何使用的逻辑,现在我将视图中的变量打印为 name、lastname、city,但是如何说 if active==1 echo active else echo non-active? &lt;?php echo ($active == 1 ? 'active' : 'non-active') ?&gt; 您必须将活动变量传递给您的视图:$this-&gt;load-&gt;view('page', array('active' =&gt; 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? [关闭]

使用 Codeigniter 进行数据表服务器端处理

出现致命错误 CodeIgniter CI_Controller not found

thinkphp模板读取数据时怎么解析HTML代码

使用 codeigniter 中的模板发送电子邮件