【问题标题】:Codeigniter, how to make a templateCodeigniter,如何制作模板
【发布时间】:2010-10-07 20:27:46
【问题描述】:

我正在尝试使用 codeigniter MVC,但我不知道如何制作我的模板,所以我有 2 个文件(页眉和页脚),然后我可以制作我的控制器,然后只将信息放在“内容”div 中,所以我像这样包含顶部和标题的好方法

<?php
include("header.php");
?>
<div id="content">My content here</div>

<?php
include("footer.php");
?>

希望你明白我的意思并能帮助我:)

【问题讨论】:

    标签: templates codeigniter


    【解决方案1】:

    最好的方法是在你的视图中加载视图。

    在views/content.php中:

    <? $this->view('header', array('title'=>'The page title', 'keywords'=>'some keywords', 'etc'=>'...')); ?>
    <div id="content">My content here</div>
    <? $this->view('footer'); ?>
    

    所以在你的控制器中你会这样做:

    $this->load->view('content', $data);
    

    $data 可以包含“标题”或“关键字”,这将在您的控制器中实现:

    $data['title'] = 'title';
    $data['keywords' = 'keywords';
    

    这在您的“内容”视图中:

    <? $this->view('header', array('title'=>$title, 'keywords'=>$keywords)); ?>
    <div id="content">My content here</div>
    <? $this->view('footer'); ?>
    

    这个问题的措辞不同,但实质上与这个问题几乎相同:CodeIgniter or PHP Equivalent of Rails Partials and Templates

    【讨论】:

    • 好答案,但不应该是&lt;? $this-&gt;load-&gt;view('footer'); ?&gt;而不是&lt;? $this-&gt;view('footer'); ?&gt;吗?
    • 不。由于 $this 不再指向控制器,因此您可以使用 &lt;? $this-&gt;view('name'); ?&gt; 但是,您仍然可以使用 &lt;? $this-&gt;load-&gt;view('name'); ?&gt; 我不记得视图中的 $this 具体是什么,但我会调查一下。如果您知道,请随时加入。
    • 因此,当您在视图中时,$thisCI_Loader,这就是 $this-&gt;load 在控制器中所指的内容。所以使用$this-&gt;view() 来加载另一个视图(在视图中)是完全可以的。
    • 根据 EllisLabs 的说法,在控制器中执行以下操作更合适:$this-&gt;load-&gt;view('header', $data); $this-&gt;load-&gt;view('content'); $this-&gt;load-&gt;view('footer'); 由于 CI_Loader 类缓存了提取的 $data 属性,因此您传递给第一个 view() 调用的任何内容将在以下view() 电话中可用。
    【解决方案2】:

    这就是我所做的。我有一个名为 layout.php 的文件,其中包含所有的 html 布局,并且在我的内部,我这样做:

    $this->load->view($template);
    

    在你的控制器中,你可以这样做:

    $data['template'] = 'filename'; 
    $this->load->view('layout', $data);
    

    这样它会在&lt;div&gt;&lt;/div&gt;中加载名为“filename”的文件

    【讨论】:

      【解决方案3】:

      尝试使用模板库,它们会极大地帮助您。帮助您比默认的$this->load->view('content', $data); 更好地管理模板

      这里有一些很好的例子:

      网上还有很多,试试用谷歌搜索吧:)

      【讨论】:

        猜你喜欢
        • 2011-08-24
        • 1970-01-01
        • 2010-11-05
        • 1970-01-01
        • 2016-09-10
        • 2012-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多