Переменная Smarty - дефис в ключе массива - PullRequest
3 голосов
/ 17 февраля 2012

Попытка отобразить переменную Smarty с дефисом в ключе. Я ничего не могу сделать, чтобы изменить тот факт, что в ключе есть дефис.

Например, номер телефона может храниться в массиве $ form как:

  phone-1-1 => Array (9)
  name => "phone-1-1"
  value => "(555) 555-5555"
  type => "text"
  frozen => false
  required => false
  error => null
  id => "phone-1-1"
  label => "<label for="phone-1-1">Phone Number (..."
  html => "<input maxlength="32" size="20" name=..."

Попытка напечатать переменную smarty с помощью:

{$form.phone-1-1.label}

терпит неудачу из-за дефисов.

Есть идеи, как мне это обойти?

1 Ответ

3 голосов
/ 17 февраля 2012

Единственный обходной путь, который вы можете использовать:

{assign var="mykey" value="phone-1-1"}
{$form.$mykey.label}

Встроенная функция Smarty {assign} позволяет создавать переменные непосредственно в шаблоне.

http://www.smarty.net/docs/en/language.function.assign.tpl (для Smarty 3)
http://www.smarty.net/docsv2/en/language.custom.functions.tpl (для Smarty 2)

...