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

我一直在本地主机上测试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', '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无法加载文件时抛出。在使用
    render()
    方法时,或者在Twig中使用某些文件功能时(例如
    {%extends…%}
    ),可能会发生这种情况
  • 在运行时发生错误时抛出(例如,扩展内部的错误)

您不会收到细枝错误,因为错误不存在于模板中,而是存在于生成这些模板的代码中

PHP在将
$data
的值放入数组中时遇到问题,因为该变量不存在

如果要查看twig如何处理错误,则需要访问模板中不存在的变量。例如,将
{{notExisting}}
放入当前模板中


我已经可以说,Twig通过在PHP中抛出解析异常来处理错误。Twig引发的所有异常都在扩展。要捕获这些,请使用
try{…}catch(\Twig\u Error$e){…}

此外,Twig可以抛出3种不同类型的异常:

  • 在分析模板时出错(例如,使用格式错误的标记)时引发
  • 当Twig无法加载文件时抛出。在使用
    render()
    方法时,或者在Twig中使用某些文件功能时(例如
    {%extends…%}
    ),可能会发生这种情况
  • 在运行时发生错误时抛出(例如,扩展内部的错误)
      // set template variables
  // render template
  echo $template->render(array (
    'data' => $data
  ));