2016-07-22 1 views
1

Smartyが読み込み中でも{$ title}と{$ username}がページに直接表示され、変数として設定されているものを使用していないかどうかはわかりません。FuelPHPとSmarty - 変数が機能しない

私は "Smartyの/ 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ファイルで、私はそれだけでテストのために、しかししていないようだ

{$タイトル} {$のユーザー名}

を持っています働いている。

+0

にある設定ファイルを使用してデフォルトを上書きすることができ、それを見ました。ビューをレスポンスにラップするべきではありませんが、すぐに間違ったことはありません。単一のブレースではなく、デリミタとして二重ブレースが使用されていることを確認してください(デフォルトでは、パーサパッケージのparser.php設定ファイルを参照してください)。 – WanWizard

答えて

1

FuelPHPのParserパッケージは、テンプレートエンジンを使用してビューのレンダリングを処理します。あなたは既に行われてきたよう

は、あなたが最初のパーサパッケージはパーサが使用するパーサエンジンを決定するために、ファイルの拡張子を使用していますalways_load

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

に追加されていることを確認することによってfuel/app/config.phpにパーサパッケージを有効にする必要があります。あなたの場合、ファイルdashboard/index.tplは典型的なスマイリーエクステンション.tplを使用しますが、FuelPHPにはそのエクステンション用に登録されたテンプレートはありません。

FuelPHPはデフォルトで.smartyを使用します。

だから、2つの選択肢があります。

    はFuelPHPのデフォルト
  1. 幸いにも両方が簡単での.tplファイル

のためのSmartyを使用するように変更FuelPHPの設定に付着し、テンプレートのファイル拡張子を変更し

  • 。オプション2を選択する場合は、default configuration definitionをチェックしてください。

    あなたは後半の応答のため申し訳ありませんfuel/app/config/parser.php

    return array(
    
        // Overrides default smarty extension 
        'extensions' => array(
         'tpl' => 'View_Smarty', 
        ) 
    ); 
    
  • 関連する問題