FuelPHP 和 Smarty - 变量不起作用
FuelPHP and Smarty - Variables not working
不确定 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
中启用解析器包,方法是确保将解析器包添加到 always_load
'always_load' => array(
'packages' => array(
'parser',
),
),
解析器使用文件的扩展名来确定要使用的解析器引擎。在您的情况下,您的文件 dashboard/index.tpl
使用典型的 smarty 扩展 .tpl
,但是 FuelPHP 没有为该扩展注册的模板。
FuelPHP 默认使用 .smarty
。
那么,您有 2 个选择。
- 更改模板的文件扩展名,遵循 FuelPHP 默认设置
- 更改 FuelPHP 的配置以对 .tpl 文件使用 Smarty
幸运的是两者都很容易。如果您选择使用选项 2,请查看 default configuration definition.
您可以使用位于 fuel/app/config/parser.php
的配置文件覆盖默认值
return array(
// Overrides default smarty extension
'extensions' => array(
'tpl' => 'View_Smarty',
)
);
不确定 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
中启用解析器包,方法是确保将解析器包添加到 always_load
'always_load' => array(
'packages' => array(
'parser',
),
),
解析器使用文件的扩展名来确定要使用的解析器引擎。在您的情况下,您的文件 dashboard/index.tpl
使用典型的 smarty 扩展 .tpl
,但是 FuelPHP 没有为该扩展注册的模板。
FuelPHP 默认使用 .smarty
。
那么,您有 2 个选择。
- 更改模板的文件扩展名,遵循 FuelPHP 默认设置
- 更改 FuelPHP 的配置以对 .tpl 文件使用 Smarty
幸运的是两者都很容易。如果您选择使用选项 2,请查看 default configuration definition.
您可以使用位于 fuel/app/config/parser.php
return array(
// Overrides default smarty extension
'extensions' => array(
'tpl' => 'View_Smarty',
)
);