web-dev-qa-db-fra.com

Concaténation de variable locale Smarty avec chaîne

Comment attribuer une variable de modèle local avec une chaîne concaténée comme ci-dessous:

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

à utiliser ci-dessous dans le code de la manière {$yes_src}.

28
algorytmus

La façon dont vous le faites est d'appeler la "forme courte" de assign, il vous suffit d'utiliser le mécanisme de citation correct :

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

Utilisez assign:

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

Utilisez cat:

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

Vous pouvez également simplement placer les variables les unes à côté des autres sans les affecter à une variable:

{$const1}yes{$const2}

... aucune variable nécessaire.

Une note Si vous utilisez assign plus de rarement , vous pourriez avoir une idée fausse sur les idées de séparation de la logique de la présentation. Habituellement, la concaténation et les autres travaux sur les variables sont effectués en PHP avant que le modèle ne soit jamais impliqué. Le rôle du modèle est de afficher simplement les données, vous devez éviter créer ou modifier les données du modèle.

Documentation

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

Essaye ça:

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

Et puis utilisez la nouvelle variable:

{$yes_src}
7
D-32