我将<title>
标记定义为基本twig文件中的块,我想确保所有视图都覆盖此块。有没有办法根据需要标记块,所以如果忘记了,我会收到错误?
答案 0 :(得分:1)
这不是Twig内置的(也许你应该提出功能请求!)
我可以想到一种方法,但它并没有完全使用块。
如果你有一个base.html.twig
,那么我们来说一个简单的例子:
<title>{% block title %}{{ title }}{% endblock %}</title>
并扩展此块:
{% extends '::base.html.twig' %}
但不要声明{% block title %}
- 然后Twig将在开发环境(以及生产环境中的prod.log
)中发出关于未设置变量的通知。 (你真的不应该让Symfony在制作中抛出一个像这样微不足道的错误。)
然后有两种“满足要求”的方式:
title
变量传递到扩展的Twig文件title
块示例1,在您的控制器中:
return $this->render('AcmeBundle:Extended:view.html.twig', array(
'title' => 'My fancy title'
));
示例2,在您的Twig文件中:
{% extends 'AcmeBundle::base.html.twig' %}
{% block title %}My fancy title{% endblock %}