【问题标题】:Smarty: Combine variable with attributeSmarty:将变量与属性结合起来
【发布时间】:2019-10-28 08:07:01
【问题描述】:
smarty中如何在属性中间添加变量的值?
例子:
{for $limit=1 to 50}
{if {$customer_data.attribute.kind{$limit}aktiv} == '1'} // I want to place the $limit variable right behind 'kind'
"Activ!"
{/if}
{/for}
【问题讨论】:
标签:
concatenation
smarty
attr
【解决方案1】:
为清楚起见,您可以在单独的行上计算属性名称。您可以使用backticks 完成连接。
{for $limit=1 to 5}
{assign "attrName" "kind`$limit`aktiv"}
{if $customer_data.attribute.$attrName == '1'}
<div>{$attrName} Activ!</div>
{/if}
{/for}
PHP 示例数据:
$smarty->assign('customer_data', [
'attribute' => [
'kind1aktiv' => 0,
'kind2aktiv' => 1,
'kind3aktiv' => 1,
'kind4aktiv' => 0,
'kind5aktiv' => 1,
],
]);
最后,您可以考虑在 PHP 中准备一个更简单的数据结构。 Smarty 不必关心计算,只关心演示。