Latte:没有找到过度给定的参数
Latte: Didn't find overgiven parameter
我尝试使用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
但是当我直接在 $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) } }
所以我不明白。
为什么latte找不到$result变量?
在当前代码中,没有将 $result
数组的 "name" 传递给模板,只传递数组本身。因此,您的渲染引擎不知道该变量的名称,而只知道内容。
要完成这项工作,请将 render
调用更改为:
$latte->render('templates/events.latte', ['result' => $result]);
我尝试使用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
但是当我直接在 $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) } }
所以我不明白。 为什么latte找不到$result变量?
在当前代码中,没有将 $result
数组的 "name" 传递给模板,只传递数组本身。因此,您的渲染引擎不知道该变量的名称,而只知道内容。
要完成这项工作,请将 render
调用更改为:
$latte->render('templates/events.latte', ['result' => $result]);