4

現在、私はテンプレートを使用しており、モデル/データベースから何かを読み取るには{php}が必要です。これは、現在のテンプレート内の新しいsmarty変数になります。どうすればこれを解決できますか?

例えば:

{php}
   $var["newSmartyVar"] = model_gimme_data();
   $currentTemplate->assign($var);
{/php}

The value is {$newSmartyVar} !

ここの正しいコードは何ですか?

(ええ、珍しく、抽象的ではありませんが、ラピッドプロトタイピングにのみ必要です。コードは後でコントローラーに入れられます。)

4

2 に答える 2

2

$this現在の smarty インスタンスを参照します。

{php}
$this->assign('foo', 'bar');
{/php}
{$foo}

ただし、疫病のように {php} を避ける必要があります。{php} を使用することは、抽象化が欠落している兆候です。代わりに関数プラグインの作成を検討できます。

于 2012-09-03T08:27:29.373 に答える
0
{php}
global $currentTemplate;
$var = model_gimme_data();
$currentTemplate->assign('newSmartyVar',$var);
{/php}

モデルから何かを取得するには:

{php}
global $currentTemplate;
$this->_tpl_vars['variableName'];
{/php}
于 2012-09-03T08:14:43.753 に答える