2つのテンプレートがあり、メインテンプレートから変数body_class
を上書きしたいとします。これはこれまでのコードです。Twig:前のテンプレートで設定された変数のオーバーライド
メインテンプレート:
{# main.html.twig #}
<!DOCTYPE html>
<html>
<head>
{% block head %}
{% block head_meta %}
// ...
{% endblock %}
<title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %}
// ...
{% endblock %}
{% block icon %}
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
{% endblock %}
{% endblock %}
</head>
{% set body_class = '' %}
<body class="main {{ body_class }}">
{% block navi %}{% endblock %}
{% block error %}{% endblock %}
{% block body %}{% endblock %}
{% block footer %}{% endblock %}
{% block javascripts %}
// ...
{% endblock %}
</body>
</html>
2番目のテンプレート:
{# dashboard.html.twig #}
{% set body_class = 'dashboard' %}
{% extends 'main.html.twig' %}
{% block head %}
{{ parent() }}
{% endblock %}
{% block head_meta %}
{{ parent() }}
{% endblock %}
{% block title %}Dashboard!{% endblock %}
{% block body %}
I'm dashboard!
{% endblock %}
私は前の文を拡張した後{% set body_class = 'dashboard' %}
置いてみましたが、それは動作しませんでした。私は間違って何をしていますか?
ありがとうございます。