Ich habe eine Ansicht, in der ich versuche, das Formulardesign für ein einzelnes Feld unter http://symfony.com/doc/current/cookbook/form/form_customization.html#how-to-customize-an-individual-field zu überschreiben.Zweig form_theme _self Anpassen des individuellen Felds
Die Ansicht sieht etwa so aus:
{% form_theme form _self %}
{% block _my_form_foo_widget %}
<div class="input-append">
{{ block('number_widget') }}
<span class="add-on">%</span>
</div>
{% endblock %}
<form>
{{ form_row(form.foo) }}
{{ form_row(form.bar) }}
</form>
Alles für die foo und bar Reihen wie erwartet aussieht, aber der _my_form_foo_widget
Block selbst auch in der Ausgabe enthalten ist, das heißt:
<div class="input-append">
<span class="add-on">%</span>
</div>
<form>
<div>
<label for="my_form_foo">Bar</label>
<div class="input-append">
<input type="text" id="my_form_foo" name="my_form[foo]">
<span class="add-on">%</span>
</div>
</div>
<div>
<label for="my_form_bar">Foo</label>
<input type="text" id="my_form_bar" name="my_form[bar]">
</div>
</form>
Ich kann nicht für das Leben von mir herausfinden, was ich falsch mache. Als Workaround habe ich den Block einfach in HTML-Kommentare eingepackt.
Ich bin auf Symfony 2.4.1 und Zweig 1.15.0.
haben Sie Ihren Cache klar? Vielleicht ist es ein Zweigparsingfehler, der mit dem '%' Zeichen zusammenhängt. Haben Sie versucht, das '%' in '' in ein anderes Zeichen (d. Wenn das funktioniert, können Sie versuchen, '' '' '' 'durch' {{'%'}} 'zu ersetzen. Weiterhin könntest du versuchen, den übergeordneten Block in eine andere Vorlage zu verschieben (zB 'form_theme.html.twig') und' '% form_theme form '' form_theme.html.twig '%}' – nifr
@nifr verwenden Cache leeren und '' % zu etwas anderem macht keinen Unterschied. – enoshixi
Sie haben meinen Vorschlag mit dem externen form_theme nicht versucht :) Sie erweitern keine andere Vorlage - deshalb wird der Block direkt gerendert. – nifr