Smarty:将变量与属性组合

问题描述 投票:0回答:1

如何在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个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.