Ich habe ein Formular mit Symfony2 FormBuilder erstellt und möchte eines der Felder in der Bearbeitungsansicht deaktivieren. Ich verstecke es tatsächlich mit einem Wrapper (display:none
), aber ich frage mich, ob es einen besseren Weg gibt, dies zu tun. Mein Code sieht wie folgt aus:So deaktivieren Sie ein Feld in der Bearbeitungsansicht mit Symfony 2 FormBuilder
EntityType
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('fieldToDisabledInEditView');
// ...
EntityController
public function newAction() {
$entity = new Entity;
$form = $this->createForm(new EntityType, $entity);
// ...
}
public function editAction() {
$entity = new Entity;
$form = $this->createForm(new EntityType, $entity);
// ...
}
Neu (Zweig) Vorlage
<form>
{{ form_row(form.fieldToDisabledInEditView) }}
{# ... #}
Edit (Zweig) Template
<form>
<span class="theValueOfTheHiddenField">{{ entity.fieldToDisabledInEditView }}</span>
<div style="display:none">
{{ form_row(form.fieldToDisabledInEditView) }}
</div>
{# ... #}
Ich weiß, das ist eine alte Frage, aber erkennen, dass Anzeige: keiner sendet immer noch den Wert in der Form, wo deaktiviert wird nicht. Sie könnten also Dinge löschen, die Sie nicht möchten. – shokora