Smarty: объединить переменную с атрибутом - PullRequest
0 голосов
/ 28 октября 2019

Как мне добавить значение переменной в середине атрибута в 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}

1 Ответ

0 голосов
/ 30 октября 2019

Для ясности вы можете вычислить имя атрибута в отдельной строке. Вы можете выполнить конкатенацию, используя 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 не должен заботиться о вычислениях, только о представлении.

...