0

我尝试使用拿铁模板引擎。我注册了引擎并尝试使用参数渲染模板:

$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

但是当我在 $latte 之前直接创建一个 var_dump($result) 时,我得到了这个:

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 变量?

4

1 回答 1

1

在当前代码中,您没有将该数组的“名称”传递$result给模板,只有数组本身。因此,您的渲染引擎不知道该变量的名称,而只知道内容。

要完成这项工作,请将render调用更改为:

$latte->render('templates/events.latte', ['result' => $result]);
于 2020-05-05T12:47:30.440 回答