【问题标题】:How can i get default template/layout for whole project in codeigniter?如何在 codeigniter 中获取整个项目的默认模板/布局?
【发布时间】:2012-04-26 09:20:24
【问题描述】:

谁能告诉我如何在 codeigniter 中为我的整个项目实现默认模板/布局?

我找到的一种方法是Templating with Code Igniter (CI Forums)

还有其他方法吗?任何人都可以发布完整的示例代码吗?

【问题讨论】:

  • 一个建议,自己尝试一下,然后发布任何问题,如果 OP 没有尝试,这里没有人喜欢发布整个代码块

标签: php codeigniter templates layout view


【解决方案1】:

制作一个布局视图。像这样的东西:

<html>
  <head>
    <title>My awesome site</title>
  </head>
  <body>
    <?= $this->load->view('shared/header') ?>
    <?= $this->load->view($partial) ?>
    <?= $this->load->view('shared/footer') ?>
  </body>
</html>

然后在您的控制器中执行以下操作:

$this->data['partial'] = 'pages/index';
$this->load->view('layout/layout', $this->data);

如果你有一个 MY_Controller 文件,你可以在那里创建一个方法:

function load_view($partial)
{
  $this->data['partial'] = $partial;
  $this->load->view('layout/layout', $this->data);
}

然后在继承自 MY_Controller 的控制器中可以使用:

$this->load_view('pages/index'); // pages/index will be loaded in the layout

【讨论】:

    【解决方案2】:

    我知道其中一种方法是为您的网站/项目创建页眉和页脚视图。

    application/views/template/header.php
    application/views/template/footer.php
    

    然后,您可以按照自己的意愿安排其他页面。

    application/views/users/login.php
    

    在你的控制器中你会做这样的事情

    <?php
        class Blah extends CI_Controller
        {
            public function __construct()
            {
                parent::__construct();
            }
    
            public function index()
            {
                $this->load->view('template/header');
                $this->load->view('users/login');
                $this->load->view('template/footer');
            }
        }
    

    我偶然发现了一个有用的小模板库,它使这变得更加简单。不过,我发现它不像输入其他方式那样灵活。

    http://maestric.com/doc/php/codeigniter_template

    编辑:: 我应该给出一些模板的示例代码,所以你去吧

    header.php

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Lovely Title</title>
        </head>
        <body>
            <h1>Check This Out!!1!</h1>
            <div class="container">
    

    页脚.php

            </div>
        </body>
    </html>
    

    【讨论】:

    • 我认为在控制器中加载页眉和页脚不是一个好主意。你会一遍又一遍地重复自己。最好创建一个布局视图文件并在其中加载页眉/页脚。然后你只需要做一次。
    • 是的,我提供的链接与您的建议完全相同。给猫剥皮的方法太多了:)
    【解决方案3】:

    您始终可以将视图与其他视图一起加载并实现您想要的。

    其他更好的方法是使用支持模板继承的模板引擎,如

    在 CodeIgniter 中使用它们相当容易,因为 CI 库的实现有很多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 2016-08-07
      • 1970-01-01
      相关资源
      最近更新 更多