Ich habe zwei Bundles, die ich selbst erstellt habe: eine, um Admin-Abschnitte zu generieren (AdminBundle
), und eine weitere, um Rechnungen zu erstellen (BillingBundle
). BillingBundle
hat grundsätzlich 2 Einheiten: Client
und Bill
(1: m).Symfony and Twig: Bedingungen in Vorlagen
Wenn ich beide Pakete installieren die neuen bearbeiten/Formulare und Listen für Client
und Bill
an der Admin zu erzeugen, schließe ich einen Teil an config.yml
wie folgt aus:
my_admin_bundle:
entities:
project: #whatever entity. Project at AppBundle for example
new: true
list: true
client:
new: true
list: true
bill:
new: true
list: true
Auf der anderen Seite, auf AdminBundle
I haben Sie eine Vorlage namens form.html.twig
, die das Formular rendert, um neue Elemente zu erstellen. Im Grunde ist es wie folgt aus:
{{ form(form) }}
Der Zweifel: Da die Form neu erstellen Bills
brauchen eine .js
Datei (accounting.js
), , wie es um nur für neue Bill
Form, jedoch nicht für neue Client
oder Project
Formen ?
Wie Sie sich vorstellen können, jetzt habe ich dies in form.html.twig
:
{{ form(form) }}
<script src="/bundles/ziiwebbilling/js/accounting.js" type="text/javascript"></script>
aber ich für neue Projects
oder neue Clients
Formen nicht brauchen accounting.js
bei form.html.twig
tun.
HINWEIS: Entschuldigung, wenn ich zu viel mit meiner Erklärung ausdehne, aber ich weiß nicht, wie ich es auf andere Weise erklären soll. Selbst der Titel der Frage ist schrecklich, bitte editiere es, wenn du etwas besseres findest.
EDIT: wie ich gerade am ersten Kommentar geschrieben habe für jkucharovic Antwort, was ich wirklich suchen, mein Problem zu lösen, ist eine non-intrusive Art und Weise, das heißt: Ich würde nicht gerne die Zeile über accounting.js
innerhalb einer AdminBundle
Vorlage hinzufügen. Oder suche ich "zu viel"?
Warum Sie nicht einfach zusätzliche Variable zu Vorlage aus dem Controller übergeben, und machen Sie 'definiert' Anweisung im Zweig. – malcolm
@ Malcolm aber der Controller ist für alle gleich. Es gibt nur einen Controller. – ziiweb
Und Sie können in dieser Controller-Instanz der Klasse nicht erkennen, für welches Formular gerendert werden soll? – malcolm