Ключ динамического массива в smarty

Я просто хочу знать, как получить доступ к массиву в SMARTY, который сгенерировал индекс через smarty. Я хочу получить к нему доступ позже.

Получилось что-то вроде этого:

{if $smarty.get.{param_{$k.id}_{$p.num}} eq $key}

и мне нравится доступ $smarty.get.(dynamic generated index)

Пробовал пару вариантов, но не повезло.

3 ответа

Решение

Вы можете использовать переменную для индексов, но вы не можете построить строку так, как вы пытались. Попробуйте создать пользовательскую переменную перед:

{$myIndex = "param_{$k.id}_{$p.num}"}
{if $smarty.get.$myIndex eq $key}
    ...

Это должно работать.

В моем случае я использовал решение UnLoCo и попытался получить прямой доступ к содержимому массива (без оператора if) с помощью динамического ключа, и он отлично работает:

{$arr1["column_{$arr2.month}_price"]}

Это будет работать также

{if $smarty.get["param_{$k.id}_{$p.num}"] eq $key}
  ...
Другие вопросы по тегам