Как назначить локальную переменную шаблона со строкой, подобной приведенной ниже:
{$yes_src=const1.'yes'.const2}
который будет использоваться ниже в коде способом {$yes_src}
.
То, как вы это делаете, называется «короткой формой» assign
, вам просто нужно использовать правильный механизм цитирования :
{$yes_src="`$const1`yes`$const2`"}
Использовать assign
:
{assign var="yes_src" val="`$const1`yes`$const2`"}
Использовать cat
:
{$const1|cat:"yes"}{$const2}
Вы также можете просто поместить переменные рядом друг с другом, не присваивая их переменной:
{$const1}yes{$const2}
… никакой переменной не требуется.
Примечание. Если вы считаете, что используете assign
более чем редко , возможно, вы ошибаетесь в идеях разделения логики от представления. Обычно конкатенация и другая переменная работа выполняются на PHP до того, как шаблон будет задействован. Роль шаблона состоит в том, чтобы просто отображать данные , вы должны избегать создания или изменения данных в шаблоне.
Документация
cat
– http://www.smarty.net/docsv2/en/language.modifier.cat { $yes_src = $variable|cat:"some string"|cat:$variable }
Попробуй это:
{capture assign=yes_src}{$const1}.'yes'.{$const2}{/capture}
А затем используйте новую переменную:
{$yes_src}