我单独使用树枝,而不是从Symfony内部使用。
我有基本布局base.html。其他布局扩展了这一布局,并且看起来还不错。
如果我有一个控制器操作BlogPosts,它传递了一系列Blogpost,那么我将渲染Blog布局,该布局从基本布局扩展到可以看到该内容。可以按预期工作
现在,我想将变量传递给基本模板,因此它在每个页面上都可见。我该怎么办?
我找到了this article,但这是出于symfony的原因。 Twig本身没有渲染功能。
答案 0 :(得分:1)
如果您使用的是没有symfony的树枝,我认为您的项目目录结构类似于:
project
- templates
- base.html.twig
- index.html.twig
- vendor
- index.php
因此,您的index.php代码应类似于:
require_once 'vendor/autoload.php';
$loader = new Twig_Loader_Filesystem('templates', getcwd());
$twig = new Twig_Environment($loader);
echo $twig->render('index.html.twig', array('name' => 'Hello'));
因此,如果您想将一些变量传递给基本模板,则twig可以通过方法为全局使用添加价值
require_once 'vendor/autoload.php';
$loader = new Twig_Loader_Filesystem('templates', getcwd());
$twig = new Twig_Environment($loader);
$twig->addGlobal('title', 'HomePage');
echo $twig->render('index.html.twig', array('name' => 'Hello'));
我希望有帮助