Латте: не обнаружил превышенный параметр - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь использовать шаблонизатор latte. Я регистрирую движок и пытаюсь визуализировать шаблон с параметрами:

$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 Ответ

1 голос
/ 05 мая 2020

В текущем коде вы не передаете шаблону «имя» для этого $result массива, только сам массив. Таким образом, ваш механизм рендеринга не знает имя этой переменной, а знает только ее содержимое.

Чтобы это работало, измените вызов render на:

$latte->render('templates/events.latte', ['result' => $result]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...