Массив в smarty возвращает ошибку - PullRequest
3 голосов
/ 16 сентября 2011
Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "./templates/diet-report.tpl" on line 3 "{if is_array($dietcontent) }" - Unexpected " }"' in ...

Я сделал это:

    {if is_array($dietcontent) }
    There is something..
    {else}
    Noope...
    {/if}

Когда я выводил {$ dietcontent}, я получал "Array".Но на страницах, где я не получаю «Массив», я хочу вывести текст.

Почему я получаю ошибку?

Я даже пытался в моем контроллере (это выше в шаблоне):1009 *

$data['rapportExists'] = is_array($data['dietcontent']) ? true: false;

, а затем в моем шаблоне:

{if $rapportExists == false }
noope
{/if}

Тем не менее получает ту же ошибку неожиданно}

Ответы [ 2 ]

5 голосов
/ 16 сентября 2011

Вам необходимо удалить пробел до }.Smarty не допустит пробелов перед закрывающей скобкой или после открывающей скобки.Я проверял это в некоторых моих собственных шаблонах и мог воспроизвести вашу ошибку, поместив пробел перед закрывающей скобкой.

{if is_array($dietcontent) }
-------------------------^^^

{if $rapportExists == false }
---------------------------^^^
5 голосов
/ 16 сентября 2011

Вы можете сделать это как:

{if $yourArray|is_array}
do something with it
{/if}
...