1

我在 FuelPHP 网上没有看到很多关于模板的教程。官方文档中的部分并没有真正解释任何内容。

有没有人可以推荐的示例或教程?

4

2 回答 2

3

FuelPHP 中并没有真正的模板之类的东西。

有一个模板控制器,它允许您将视图设置为“页面模板”,并在您的控制器操作完成时自动呈现它。

所以那个控制器中的模板是一个普通的视图。将节传递给它只不过是将变量传递给它,它可能包含另一个 View 对象(例如页眉或页脚视图)。http://fuelphp.com/docs/general/views.html在“嵌套视图”下有一个示例。

如果你想要一个更灵活的系统,你应该看看 Theme 类,它适用于主题(多个)、模板、部分、主题回退、中央视图文件夹等。

于 2013-08-31T23:22:48.920 回答
2

为了使用 Fuelphp Controller_Template 的功能,使用基本元素创建一个名为 template.php 的默认视图:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="utf-8">
    <title>Website<?php echo isset($title) ? ' - '.$title : ''; ?></title>
    <?php echo Asset::css('style.css'); ?>
    <?php echo Asset::js('global.js'); ?>
</head>
<body>
    <div id="header">
        <!-- Some code -->
    </div>
    <div class="container">
        <?php echo isset($content) ? $content : ''; ?>
        <hr/>
        <footer>
            <!-- Some code -->
        </footer>
    </div>
</body>
</html>

然后在您页面的控制器(例如:Controller_Home)中扩展 Controller_Template 并将这些变量放在函数 before() 中:

class Controller_Home extends \Fuel\Core\Controller_Template
{
    public function before()
    {
        parent::before();
        $this->template->menu = 'home';
        $this->template->title = 'Home';
    }
}

然后当你想在这个控制器中调用一个页面时(例如:index.php)试试这个:

public function action_index()
{
    $this->template->content = View::forge('home/index');
}

它将显示模板和您的页面(视图)index.php。

于 2013-10-03T15:16:28.863 回答