fenom-template / fenom

Template Engine for PHP. Maintainers wanted!
Other
446 stars 108 forks source link

Массив в шаблон не работает #265

Closed No0k closed 7 years ago

No0k commented 7 years ago

В доках описания не нашел. Есть запрос:

<?php
$fraction = array();
$fraction = Vars::get('db')->query('SELECT `id`,`name` FROM `fraction` ORDER BY `member` ASC')->fetch_all();
Vars::get('fenom')->display('tutorial/step2.tpl', $fraction);
?>

Получается в шаблон я передаю такой массив: image Но когда я его вызываю в шаблоне:

{foreach $fraction as $key => $value}
    {$key.id} - {$key.name}
{/foreach}

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

bzick commented 7 years ago

Попробуйте так

Vars::get('fenom')->display('tutorial/step2.tpl', ["fraction" => $fraction]);

Вы массив $fraction вбросили в глобальное пространство имен

No0k commented 7 years ago

Вы массив $fraction вбросили в глобальное пространство имен

Немного Вас не понял.

axules commented 7 years ago

@No0k , у тебя в шаблон пришел не $fractial, а его "кишки". если у меня будет $a = {x: 10, y: 20, z: 30}, я сделаю Vars::get('fenom')->display('tutorial/step2.tpl', $a); то внутри шаблона у меня не будет $a, а будут его поля - $x, $y, $z. Если захочу $a, то сделаю Vars::get('fenom')->display('tutorial/step2.tpl', [ 'myA'=> $a]); а в шаблоне буду юзать $myA и все будут счастливы =)

bzick commented 7 years ago

@axules полностью все описал