Ho creato un modulo con Symfony2 FormBuilder e voglio disabilitare uno dei campi nella vista di modifica. In realtà lo nascondo con un wrapper (display:none
) ma mi stavo chiedendo se c'è un modo migliore per farlo. Il mio codice è simile al seguente:Come disabilitare un campo in edit view con 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);
// ...
}
Nuovo (ramoscello) Template
<form>
{{ form_row(form.fieldToDisabledInEditView) }}
{# ... #}
Edit (ramoscello) Template
<form>
<span class="theValueOfTheHiddenField">{{ entity.fieldToDisabledInEditView }}</span>
<div style="display:none">
{{ form_row(form.fieldToDisabledInEditView) }}
</div>
{# ... #}
So che questa è una domanda vecchia ma rendiamo conto che la visualizzazione: nessuno invierà comunque il valore nel modulo in cui non sarà disabilitato. Quindi potresti cancellare alcune cose che non vuoi. – shokora