我没有在FuelPHP在线看到很多关于模板的教程。官方文档中的部分并没有真正解释任何内容。
是否有人可以推荐的示例或教程?
答案 0 :(得分:3)
FuelPHP中没有模板这样的东西。
有一个模板控制器,可以将视图设置为“页面模板”,并在控制器操作完成后自动呈现。
因此该控制器中的模板是普通视图。将部分传递给它只不过是将变量传递给它,它可能包含另一个View对象(例如页眉或页脚视图)。 http://fuelphp.com/docs/general/views.html在“嵌套视图”下有一个示例。
如果你想要一个更灵活的系统,你应该看一下Theme类,它适用于主题(多个),模板,局部,主题回退,中央视图文件夹等。
答案 1 :(得分: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中(例如: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';
}
}
然后当你想在这个Controller中调用一个页面时(例如:index.php)试试这个:
public function action_index()
{
$this->template->content = View::forge('home/index');
}
它将显示模板和您的页面(视图)index.php。