Also, ich habe 3 Vorlagen: 1. Widget mit einigen Parametern einbinden, 2. Globales Layout für jede Seite, 3. Einzelne Seite.
Ich möchte einen Block im Layout erstellen, der von Page überschrieben werden würde, aber wenn ich diesen Block in das Widget Einbetten einfügen möchte, funktioniert es nicht.
file: Widget/awesome.html.twig
(Widget einbetten)
file: Layout/layout.html.twig
file: Portal/page.html.twig
Ist das irgendwie möglich?
Das kannst du nicht tun. Einbetten funktioniert wie include und extends, so dass Block I_WANT_TO_OVERRIDE_THIS tatsächlich in deiner 'erweiterten' awesome.html.twig 'ist. Seite erweitert layout.html.twig nicht um das Tolle, also gibt es keinen I_WANT_TO_OVERRIDE_THIS Block für page.html
Sie sollten dies ändern, um Platzhalter für Ihr Widget zu erhalten und diese auf der Ebene page.html.twig einzubetten.
Wenn Sie diesen Weg wirklich brauchen, können Sie es letztendlich so machen: In layout.html.twig:
%Vor%Die angenommene Antwort hat mir geholfen, einen ähnlichen Fall herauszufinden, in dem ich eine Einbettung in eine Einbettung verwende und ich in der Lage sein möchte, HTML in den Einbettungsblock für Kinder einzubetten.
Wenn Sie in users.html nachsehen, werde ich {% set footer %}{% endset %}
verwenden, was mir erlaubt, den HTML-Code in den untergeordneten Block {% block footer %}
zu übertragen.
users.html
%Vor%user_widget.twig
%Vor%user_info.twig
%Vor%