【发布时间】:2013-08-18 22:57:48
【问题描述】:
我使用 Symfony2 FormBuilder 创建了一个表单,我想禁用编辑视图中的一个字段。我实际上是用包装器(display:none)隐藏它,但我想知道是否有更好的方法来做到这一点。我的代码如下所示:
实体类型
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('fieldToDisabledInEditView');
// ...
实体控制器
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) }}
{# ... #}
编辑(树枝)模板
<form>
<span class="theValueOfTheHiddenField">{{ entity.fieldToDisabledInEditView }}</span>
<div style="display:none">
{{ form_row(form.fieldToDisabledInEditView) }}
</div>
{# ... #}
【问题讨论】:
-
我知道这是一个老问题,但意识到 display: none 仍然会以 disabled 不会的形式发送值。所以你可能会删除一些你不想删除的东西。