Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 细枝模板不包括块?_Php_Templates_Twig_Jinja2_Template Inheritance - Fatal编程技术网

Php 细枝模板不包括块?

Php 细枝模板不包括块?,php,templates,twig,jinja2,template-inheritance,Php,Templates,Twig,Jinja2,Template Inheritance,我希望开始使用Twig,但是让{%block%}工作起来真的很头疼-我觉得我肯定错过了一些非常明显的东西 我的index.php加载程序如下所示: <?php error_reporting(E_ALL); ini_set("display_errors", 1); require_once( "Twig/Autoloader.inc.php" ); Twig_Autoloader::register(); $twig = new Twig_Environment( new Twig

我希望开始使用Twig,但是让{%block%}工作起来真的很头疼-我觉得我肯定错过了一些非常明显的东西

我的index.php加载程序如下所示:

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

require_once( "Twig/Autoloader.inc.php" );

Twig_Autoloader::register();

$twig = new Twig_Environment( new Twig_Loader_Filesystem("templates"));

$vars = array (
    "user" => array(
        "name" => "Joe Bloggs"
        ),
    "title" => "My website"
);

$tpl = $twig->loadTemplate("index.html");
echo $tpl->render($vars);

?>
/templates
中的导航.html如下所示:

<!doctype html>
<html>
<body>
Hello World!
{% block navigation %}Test{% endblock %}
</body>
</html>
{% extends "index.html" %}
{% block navigation %}
<!-- Navigation -->
<nav>
    Some navigation
</nav>
{% endblock %}
{%extends“index.html”%}
{%block-navigation%}
一些导航
{%endblock%}
据我所知,这应该是blocks特性的一个基本工作示例。Twig的其他方面对我来说似乎工作得很好,并且没有报告任何错误。事实上,页面成功地打印了“Test”


我应该明确地指向某个地方的navigation.html文件,还是Twig会自动加载
/templates
文件夹中的所有文件?

错误:您正在呈现索引模板,而不是导航模板

在索引模板中,导航块包含“Test”,因此您的输出是正确的。如果呈现navigation.html,您将从index.html获取html内容,并从导航模板(它唯一覆盖的内容)获取导航块


始终需要呈现要输出的模板。一个可能会被多个扩展(例如,您的布局可能会被所有操作的模板扩展)。

我不确定您的问题是什么。你的问题是你得到的是“测试”而不是你的导航块吗?是的,的确如此。出于所有的意图和目的,块标记似乎什么也没做。