Wie einem lokalen Template-Variable mit einem String knapp unter verketteten zuweisen wie:Smarty lokale Variable Verkettung mit String
{$yes_src=const1.'yes'.const2}
bis unten in dem Code in die {$yes_src}
Weise verwendet werden.
Wie einem lokalen Template-Variable mit einem String knapp unter verketteten zuweisen wie:Smarty lokale Variable Verkettung mit String
{$yes_src=const1.'yes'.const2}
bis unten in dem Code in die {$yes_src}
Weise verwendet werden.
Die Art und Weise Sie es tun, um die „Kurzform“ ist rufen von assign
, man muss nur die verwenden correct quoting mechanism:
{$yes_src="`$const1`yes`$const2`"}
Verwendung assign
:
{assign var="yes_src" val="`$const1`yes`$const2`"}
Verwendung cat
:
{$const1|cat:"yes"}{$const2}
Sie können auch einfach die Variablen setzen nebeneinander, ohne es zu einer Variablen zugewiesen:
{$const1}yes{$const2}
... keine Variable benötigt.
Ein Hinweis Wenn Sie sich assign
mehr als selten, könnte man eine falsche Vorstellung über die Ideen der Trennung haben Logik von der Präsentation finden Verwendung. Normalerweise würden Verkettungen und andere variable Arbeiten in PHP durchgeführt werden, bevor die Vorlage überhaupt beteiligt ist. Die Rolle der Vorlage ist nur die Daten anzeigen, sollten Sie vermeiden, Erstellen oder Ändern der Daten in der Vorlage.
Dokumentation
assign
-http://www.smarty.net/docs/en/language.function.assign.tplcat
- http://www.smarty.net/docsv2/en/language.modifier.catSmarty3 erlaubt auch {$ yes_src = "{$ cont1} ja {$ const2}"} – rodneyrehm
Versuchen Sie folgendes:
{capture assign=yes_src}{$const1}.'yes'.{$const2}{/capture}
Und dann die neue Variable verwenden:
{$yes_src}
{ $yes_src = $variable|cat:"some string"|cat:$variable }
Wertvoll, wenn man eine Zeichenkette mit Anführungszeichen benötigt, weil die Gegenseite nicht mit einem Apostroph arbeitet. {zuordnen 'myLoc' ' | cat: {$ smarty.config.LOCALE_STR} | cat: ""} – TMa
@TMa Danke für den Tipp –
Mögliche Duplikat [Concatena in smarty] (http://stackoverflow.com/questions/10023042/concatenation-in-smarty). Ich mag die Antworten auf diese Frage besser. –