web-dev-qa-db-ja.com

文字列によるSmartyローカル変数の連結

以下のように連結された文字列でローカルテンプレート変数を割り当てる方法:

{$yes_src=const1.'yes'.const2}

以下のコードで使用される方法{$yes_src}

28
algorytmus

それを行う方法は、assignの「短い形式」を呼び出すことです。 正しいクォートメカニズム を使用するだけです。

 {$yes_src="`$const1`yes`$const2`"}

assignを使用:

{assign var="yes_src" val="`$const1`yes`$const2`"}

catを使用:

{$const1|cat:"yes"}{$const2}

また、変数に割り当てることなく、変数を並べて配置することもできます。

{$const1}yes{$const2}

...変数は必要ありません。

注意事項assignrarely、ロジックをプレゼンテーションから分離するという考え方について誤解している可能性があります。通常、連結やその他の変数の作業は、PHPがテンプレートに関与する前に行われます。テンプレートの役割はデータを表示するだけで、作成またはテンプレートのデータを変更します。

ドキュメント

61
Chris Baker
{ $yes_src = $variable|cat:"some string"|cat:$variable }
12
Roko C. Buljan

これを試して:

{capture assign=yes_src}{$const1}.'yes'.{$const2}{/capture}

そして、新しい変数を使用します。

{$yes_src}
7
D-32