不确定Smarty是否正在加载,但它直接在页面上显示{$title}和{$username},而不使用设置的变量。
我添加到composer.json 中
"smarty/smarty":"*"
我运行php composer.phar update
和install
:
我正在config.php文件中按照加载解析器
'packages' => array(
'orm',
'auth',
'parser',
),
在我的控制器dashboard.php 中
public function action_index()
{
$data = [
'bodyclass' => "dashboard",
'title' => "Dashboard",
'username' => "James"
];
$view = Response::forge(View::forge('dashboard/index.tpl', $data));
$this->template->subnav = array('dashboard'=> 'active' );
$this->template->content = $view;
}
在我的index.tpl文件中,我有
{$title}{$username}
这只是为了测试,但似乎不起作用。
FuelPHP的Parser包使用模板引擎处理视图的呈现。
正如您已经做过的那样,您必须首先在fuel/app/config.php
中启用Parser包,确保将解析器包添加到always_load
中
'always_load' => array(
'packages' => array(
'parser',
),
),
解析器使用文件的扩展名来确定要使用哪个解析器引擎。在您的文件中,dashboard/index.tpl
使用了一个典型的智能扩展.tpl
,但是FuelPHP没有为该扩展注册模板。
FuelPHP默认使用.smarty
。
所以,你有两个选择。
- 更改模板的文件扩展名,遵守FuelPHP默认值
- 更改FuelPHP的配置,将Smarty用于.tpl文件
幸运的是,两者都很容易。如果选择使用选项2,请检查默认配置定义。
您可以使用位于fuel/app/config/parser.php
的配置文件覆盖默认值
return array(
// Overrides default smarty extension
'extensions' => array(
'tpl' => 'View_Smarty',
)
);