Я создал форму с Symfony2 FormBuilder, и я хочу отключить одно из полей в окне редактирования. Я на самом деле скрываю его с оберткой (display:none
), но мне было интересно, есть ли лучший способ сделать это. Мой код выглядит следующим образом:
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);
// ...
}
Новый шаблон (твинг)
<form>
{{ form_row(form.fieldToDisabledInEditView) }}
{# ... #}
Редактировать (twig) Шаблон
<form>
<span class="theValueOfTheHiddenField">{{ entity.fieldToDisabledInEditView }}</span>
<div style="display:none">
{{ form_row(form.fieldToDisabledInEditView) }}
</div>
{# ... #}