1

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

我发现的一种方法是使用 Code Igniter 进行模板化(CI 论坛)

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

4

3 回答 3

3

制作一个布局视图。像这样的一些事情:

<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
于 2012-04-14T13:38:18.753 回答
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

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

头文件.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>
于 2012-04-14T12:20:00.483 回答
0

您始终可以使用其他视图加载视图并实现您想要的。

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

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

于 2012-04-14T03:20:31.380 回答