如何在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}
为了清楚起见,您可以在单独的一行上计算属性名称。您可以使用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不必只考虑计算就可以关注计算。