Латте: не обнаружил превышенный параметр
Я пытаюсь использовать шаблонизатор латте. Я регистрирую Engine и пытаюсь отрендерить шаблон с параметрами:
$latte = new Latte\Engine;
$events = new Event((new Config())->connectDB());
$result = $events->getAll();
$latte->render('templates/events.latte', $result);
Это часть из файла шаблона:
{layout 'base.latte'}
{block title}Veranstaltungsübersicht{/block}
{block content}
{foreach $result as $row}
....
Когда я пытаюсь это сделать, я получаю ошибку:
Notice: Undefined variable: result in ...../vendor/latte/latte/src/Latte/Engine.php(179) : eval()'d code on line 60
Но когда я делаю var_dump($result) непосредственно перед $latte, я получаю следующее:
array(1) { [0]=> array(8) { ["address"]=> string(38) "Street" ["date"]=> string(10) "2015-05-15" ["desc"]=> string(20) "sadfasdfasdfasdfasdf" ["event_participant"]=> int(25) ["id"]=> int(1) ["name"]=> string(12) "Church" ["reservation_date"]=> string(10) "2015-05-10" ["church_id"]=> int(1) } }
Так что я этого не понимаю. Почему латте не может найти переменную $result?
1 ответ
Решение
В текущем коде вы не передаете для этого "имени" $result
массив в шаблон, только сам массив. Таким образом, ваш движок рендеринга не знает имени этой переменной, а знает только ее содержимое.
Чтобы это сработало, измените render
позвонить:
$latte->render('templates/events.latte', ['result' => $result]);