Ключ динамического массива в 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}
...