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}
.
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
assign
- http://www.smarty.net/docs/en/language.function.assign.tplcat
- http://www.smarty.net/docsv2/en/language.modifier.cat{ $yes_src = $variable|cat:"some string"|cat:$variable }
Essaye ça:
{capture assign=yes_src}{$const1}.'yes'.{$const2}{/capture}
Et puis utilisez la nouvelle variable:
{$yes_src}