有没有办法在控制器(php文件)中更改一个细枝模板块
假设我有以下细枝模板:有没有办法在控制器(php文件)中更改一个细枝模板块,php,twig,Php,Twig,假设我有以下细枝模板: {% block header %}My header{% endblock %} {% block middle %}My middle{% endblock %} {% block footer %}My footer{% endblock %} 在我的控制器中,我渲染细枝文件(使用laravel细枝桥,但在其他框架中类似): 公共功能索引(){ $view=view('template.twig'); 返回$view->render(); } 那么,是否有一种方
{% block header %}My header{% endblock %}
{% block middle %}My middle{% endblock %}
{% block footer %}My footer{% endblock %}
在我的控制器中,我渲染细枝文件(使用laravel细枝桥,但在其他框架中类似):
公共功能索引(){
$view=view('template.twig');
返回$view->render();
}
那么,是否有一种方法可以操纵$视图
,例如在控制器内将块中间部分
设置为我的新中间部分
,而无需触摸模板.twig
文件
我知道,我可以在我做的地方创建一个新的child.twig
{% extends "template" %}
{% block middle %}My new middle{% endblock}
但是,有没有一种方法可以做到这一点,而不需要从控制器直接生成额外的细枝文件?差不多
$view->setBlock('middle','My new middle');
也许-?这是一种解决方法,但并不完全是我想要的,因为我需要将这些变量添加到所有细枝文件中。基本上,我必须在每个块上写这样的东西,{%block-middle%}{%if-block-middle被定义为%}{{block-middle}}{%else%}我的middle{%endif%}{%endblock}
。如果这是个好主意,那就意味着你不能再从缓存的小枝模板中获益了well@bernhardh这是一种复杂的方式,使用过滤器:{{block_middle | default('My middle')}