Twig 树枝和错误消息-这正常吗?
我一直在本地主机上测试Twig。。。此处的代码与中的相同,但查询不同:Twig 树枝和错误消息-这正常吗?,twig,Twig,我一直在本地主机上测试Twig。。。此处的代码与中的相同,但查询不同: <?php // include and register Twig auto-loader include 'Twig/Autoloader.php'; Twig_Autoloader::register(); // attempt a connection try { $dbh = new PDO('mysql:dbname=world;host=localhost', 'root', 'mypas
<?php
// include and register Twig auto-loader
include 'Twig/Autoloader.php';
Twig_Autoloader::register();
// attempt a connection
try {
$dbh = new PDO('mysql:dbname=world;host=localhost', 'root', 'mypass');
} catch (PDOException $e) {
echo "Error: Could not connect. " . $e->getMessage();
}
// set error mode
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// attempt some queries
try {
// execute SELECT query
// store each row as an object
$sql = "SELECT manufacturer, model, modelinfo FROM automobiles WHERE id = '4' ";
$sth = $dbh->query($sql);
while ($row = $sth->fetchObject()) {
$data[] = $row;
}
// close connection, clean up
unset($dbh);
// define template directory location
$loader = new Twig_Loader_Filesystem('templates');
// initialize Twig environment
$twig = new Twig_Environment($loader);
// load template
$template = $twig->loadTemplate('cars.html');
// set template variables
// render template
echo $template->render(array (
'data' => $data
));
} catch (Exception $e) {
die ('ERROR: ' . $e->getMessage());
}
?>
肯定会出现“未找到数据”的通知,还是我错了?
未定义的变量数据指:
// set template variables
// render template
echo $template->render(array (
'data' => $data
));
为什么会这样?我是Twig新手,使用他们网站上的最新版本,这是相关的。您不会收到Twig错误,因为错误不存在于模板中,而是存在于生成这些模板的代码中 PHP在将
$data
的值放入数组中时遇到问题,因为该变量不存在
如果要查看twig如何处理错误,则需要访问模板中不存在的变量。例如,将{{notExisting}}
放入当前模板中
我已经可以说,Twig通过在PHP中抛出解析异常来处理错误。Twig引发的所有异常都在扩展。要捕获这些,请使用
try{…}catch(\Twig\u Error$e){…}
块
此外,Twig可以抛出3种不同类型的异常:
- 在分析模板时出错(例如,使用格式错误的标记)时引发
- 当Twig无法加载文件时抛出。在使用
方法时,或者在Twig中使用某些文件功能时(例如render()
),可能会发生这种情况{%extends…%}
- 在运行时发生错误时抛出(例如,扩展内部的错误)
$data
的值放入数组中时遇到问题,因为该变量不存在
如果要查看twig如何处理错误,则需要访问模板中不存在的变量。例如,将{{notExisting}}
放入当前模板中
我已经可以说,Twig通过在PHP中抛出解析异常来处理错误。Twig引发的所有异常都在扩展。要捕获这些,请使用
try{…}catch(\Twig\u Error$e){…}
块
此外,Twig可以抛出3种不同类型的异常:
- 在分析模板时出错(例如,使用格式错误的标记)时引发
- 当Twig无法加载文件时抛出。在使用
方法时,或者在Twig中使用某些文件功能时(例如render()
),可能会发生这种情况{%extends…%}
- 在运行时发生错误时抛出(例如,扩展内部的错误)
// set template variables
// render template
echo $template->render(array (
'data' => $data
));