FuelPHP和Smarty - 变量不起作用
问题描述:
不知道Smarty是否正在加载,但它直接在页面上显示{$ title}和{$ username},并且没有使用设置的变量。FuelPHP和Smarty - 变量不起作用
我加入composer.json
“智者/智者”: “*”
我跑php composer.phar update
也install
:
我加载的配置。 php文件解析器按照
'packages' => array(
'orm',
'auth',
'parser',
),
在我的合作ntroller 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文件我有
{$标题} {$用户名}
这只是用于测试,但是似乎并没有正在工作。
答
FuelPHP的Parser包处理使用模板引擎的视图渲染。
正如你已经完成,你必须首先确保解析器包添加到always_load
'always_load' => array(
'packages' => array(
'parser',
),
),
解析器使用文件的扩展名,以确定要使用的解析器引擎使分析器包fuel/app/config.php
。在你的情况下,你的文件dashboard/index.tpl
使用典型的smarty扩展.tpl
,但是FuelPHP没有为该扩展注册的模板。
FuelPHP默认使用.smarty
。
所以,你有2个选项。
- 更改模板的文件扩展名,秉承FuelPHP默认
- 变化FuelPHP的配置使用Smarty的为.tpl文件
好在都是很容易。如果您选择使用选项2,请查看default configuration definition。
您可以在fuel/app/config/parser.php
return array(
// Overrides default smarty extension
'extensions' => array(
'tpl' => 'View_Smarty',
)
);
对不起,我迟到响应覆盖使用位于一个配置文件中的默认值,只是看到它。除了你不应该将视图封装到响应中,我没有看到任何立即错误的事情。您可以确定双括号用作分隔符,而不是单个大括号(默认情况下,请参阅解析器包中的parser.php配置文件)。 – WanWizard