2016-07-22 63 views
1

不知道Smarty是否正在加載,但它直接在頁面上顯示{$ title}和{$ username},並且沒有使用設置的變量。FuelPHP和Smarty - 變量不起作用

我加入composer.json

「智者/智者」: 「*」

我跑php composer.phar updateinstall

我加載的配置。 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文件我有

{$標題} {$用戶名}

這只是用於測試,但是似乎並沒有正在工作。

+0

對不起,我遲到響應覆蓋使用位於一個配置文件中的默認值,只是看到它。除了你不應該將視圖封裝到響應中,我沒有看到任何立即錯誤的事情。您可以確定雙括號用作分隔符,而不是單個大括號(默認情況下,請參閱解析器包中的parser.php配置文件)。 – WanWizard

回答

1

FuelPHP的Parser包處理使用模板引擎的視圖渲染。

正如你已經完成,你必須首先確保解析器包添加到always_load

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

解析器使用文件的擴展名,以確定要使用的解析器引擎使分析器包fuel/app/config.php。在你的情況下,你的文件dashboard/index.tpl使用典型的smarty擴展.tpl,但是FuelPHP沒有爲該擴展註冊的模板。

FuelPHP默認使用.smarty

所以,你有2個選項。

  1. 更改模板的文件擴展名,秉承FuelPHP默認
  2. 變化FuelPHP的配置使用Smarty的爲.tpl文件

好在都是很容易。如果您選擇使用選項2,請查看default configuration definition

您可以在fuel/app/config/parser.php

return array(

    // Overrides default smarty extension 
    'extensions' => array(
     'tpl' => 'View_Smarty', 
    ) 
);