繁体   English   中英

Twig从基本视图渲染其他控制器

[英]Twig render other controller from base view

我单独使用树枝,而不是从Symfony内部使用树枝。

我有基本布局base.html。 其他布局扩展了该布局,这似乎很好用。

如果我有一个控制器操作BlogPosts传递了一系列Blogpost,则将呈现Blog布局,该布局从基本布局扩展到可以看到该内容。 可以按预期工作

现在,我想将变量传递给基本模板,因此它在每个页面上都可见。 我怎样才能做到这一点?

我找到了这篇文章 ,但是提到它是为了symfony。 树枝本身没有渲染功能。

如果您使用的是没有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'));

我希望这个帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM