FuelPHP和Smarty - 变量不起作用

时间:2016-07-22 13:53:38

标签: php smarty fuelphp

不确定Smarty是否正在加载,但它直接在页面上显示{$ title}和{$ username},而不是使用什么设置为变量。

我加入了composer.json

  

"聪明/聪明":" *"

我运行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}

它只是用于测试,但似乎没有起作用。

1 个答案:

答案 0 :(得分:1)

FuelPHP的Parser包使用模板引擎处理视图呈现。

正如您已经完成的那样,您必须首先在fuel/app/config.php中启用Parser包,确保将解析器包添加到always_load

'always_load' => array(
    'packages' => array(
        'parser',
    ),
),

Parser使用文件的扩展名来确定要使用的解析器引擎。在您的情况下,您的文件dashboard/index.tpl使用典型的智能扩展程序.tpl,但是FuelPHP没有为该扩展程序注册的模板。

FuelPHP默认使用.smarty

所以,你有2个选择。

  1. 更改模板的文件扩展名,遵守FuelPHP默认
  2. 更改FuelPHP的配置以使用Smarty for .tpl文件
  3. 幸运的是,两者都很容易。如果您选择使用选项2,请查看default configuration definition

    您可以使用位于fuel/app/config/parser.php

    的配置文件覆盖默认值
    return array(
    
        // Overrides default smarty extension
        'extensions' => array(
            'tpl' => 'View_Smarty',
        )
    );