Jak przypisać zmienną lokalną szablon z łańcucha połączonego tak jak poniżej:Smarty zmienna lokalna konkatenacji sznurkiem
{$yes_src=const1.'yes'.const2}
być stosowane poniżej kodu w sposób {$yes_src}
.
Jak przypisać zmienną lokalną szablon z łańcucha połączonego tak jak poniżej:Smarty zmienna lokalna konkatenacji sznurkiem
{$yes_src=const1.'yes'.const2}
być stosowane poniżej kodu w sposób {$yes_src}
.
Sposób, w jaki robią to nazywamy „krótki formularz” z assign
, wystarczy użyć correct quoting mechanism:
{$yes_src="`$const1`yes`$const2`"}
Zastosowanie assign
:
{assign var="yes_src" val="`$const1`yes`$const2`"}
Zastosowanie cat
:
{$const1|cat:"yes"}{$const2}
Można również po prostu umieścić zmienne obok siebie bez przypisywania go do zmiennej:
{$const1}yes{$const2}
... nie zmienna potrzebne.
Uwaga Jeśli znajdziesz się używając assign
więcej niż rzadko, może być błędne przekonanie o idei oddzielenia logiki od prezentacji. Zwykle konkatenacja i inne zmienne prace byłyby wykonywane w PHP zanim szablon zostanie kiedykolwiek zaangażowany. Rolą szablonu jest po prostu wyświetlaj dane, powinieneś unikać tworzenia lub zmieniania danych w szablonie.
Dokumentacja
assign
- http://www.smarty.net/docs/en/language.function.assign.tplcat
- http://www.smarty.net/docsv2/en/language.modifier.catSmarty3 pozwala również na {$ yes_src = "{$ cont1} yes {$ const2}"} – rodneyrehm
Spróbuj tego:
{capture assign=yes_src}{$const1}.'yes'.{$const2}{/capture}
a następnie użyć nowej zmiennej:
{$yes_src}
{ $yes_src = $variable|cat:"some string"|cat:$variable }
Wartościowe, gdy trzeba zawrzeć ciąg zawierający cytaty, ponieważ tyłki nie działają z apostrofem. {assign 'myLoc' ' | cat: {$ smarty.config.LOCALE_STR} | cat: ""} – TMa
@TMa dzięki za wskazówkę –
Możliwy duplikat [Concatena w smarty] (http://stackoverflow.com/questions/10023042/concatenation-in-smarty). Jednak podobają mi się te odpowiedzi. –