php - 如何在 yii2 中使用子模板中的树枝管理资产?
问题描述
我想用一些资产包扩展我的基本树枝模板,并在子模板中添加新资产。
{# main.twig #}
register_asset_bundle('app/assets/AppAsset')
{# child.twig #}
{% extends 'layouts/main.twig' %}
register_asset_bundle('app/assets/NewAsset')
所以我收到错误“扩展另一个模板的模板不能包含 Twig 块之外的内容。您是否忘记将内容放在 {% block %} 标记内?” 那么我需要将每个资产设置为块吗?当我使用资产包时,这很不舒服。谷歌对此没有一个解决方案,在这种情况下我该怎么办?
解决方案
子模板要求其内容严格包含在block
标签中。引擎用父块替换子块中定义的块。
因此,您的main.twig
模板应至少包含一个block
,例如:
register_asset_bundle('app/assets/AppAsset')
{% block content %}{% endblock %}
这样孩子就可以按如下方式覆盖它:
{% extends 'layouts/main.twig' %}
{% block content %}
register_asset_bundle('app/assets/NewAsset')
{# More content here #}
{% endblock %}
无论您放入父模板中的“内容”块中的任何内容,都将替换为子模板中定义的该块的内容。
推荐阅读
- microsoft-graph-api - MS graph api - 对特定用户收件箱的范围访问
- windows-10 - SonarQube 包装器在 Windows 上停止,没有指示符
- spring - Spring Kafka - 使用哪个批处理错误处理程序?
- vb.net - 期望值公式
- javascript - Electron-builder 应用程序显示 32 位的空白屏幕,但适用于 64 位版本
- r - R) 在数组中查找数字时遇到问题
- javascript - Firebase 从开始点 javascript 获取评论
- angular - Angular 服务可以引用它的发起者吗?
- android-studio - .gradle\caches\6.1.1\file-changes\last-build.bin (访问被拒绝)
- wordpress - 为什么我的多站点管理仪表板在 WordPress 中有这么多错过的重定向?