2016-07-08 109 views
0

我可以这样分配:值分配给VAR在Smarty的从特定值

{{$phone_numbers.0.phone_number}} 
{{if $phone_numbers.0.extension}} EXT. {{$phone_numbers.0.extension}}{{/if}} 

在Smarty3一个变种?怎么样?我见过assign,但我不知道如何使用它连接值,有什么帮助?

编辑:这是正确的方式?

你觉得这个怎么样:

{{$phone_number=$phone.phone_number}} 
{{if $phone.extension}} {{$phone_number|cat:"EXT. $phone.extension"}}{{/if}} 
+0

你到底要放在一个变量是什么?您发布的两段代码不会产生相同的输出(即使我们假设第二个片段中的“$ phone”与第一个片段中的“$ phone_numbers.0”相同)。 – axiac

回答

0

作为一种替代方式,在第二个例子中,正确的语法是:

{{$phone_number=$phone_numbers.0.phone_number}} 
{{if $phone_numbers.0.extension}} 
{{$phone_number=$phone_number|cat:" EXT. "|cat:$phone_numbers.0.extension}} 
{{/if}} 

,然后使用{{$ PHONE_NUMBER}}

1

不能在{assign}使用条件,但你可以使用{capture}

{{capture name=foo assign=bar}} 
    {{$phone_numbers.0.phone_number}} 
    {{if $phone_numbers.0.extension}} EXT. {{$phone_numbers.0.extension}}{{/if}} 
{{/capture}} 

这使得{capture}块的内容,但不输出它。相反,它的存储是为了以后使用。

您可以在{$smarty.capture.foo}或变量{$bar}中找到它。

assign属性是可选的;你不使用它,变量{$bar}(或任何你使用的名称)不会被修改。但是,捕获的内容始终存储在变量{$smarty.capture.foo}(或您使用的任何名称)中。