Symfony2表单禁用

13

我正在使用相同的表单来“预览”对象和“编辑/更新”同一对象。在我的控制器的showAction()中,我有以下代码:

$form = $this->createForm(new SalesEntityType($entity), $entity, array('read_only' => true) );

这段代码对于主表单非常有效,但是它包含的一些子表单需要做一些调整。其中一个例子在show.html.twig文件中:

{% include 'TargetCommonBundle:Hours:hoursForm.html.twig' with { form: hours } %}

很遗憾,父表单上的read_only设置似乎不会影响包含的子表单。有没有什么方法可以处理这个问题?


似乎在子表单中,read_only的功能与主表单中一样正常工作。只是无论是主表单还是子表单中的下拉列表都没有被禁用,不能进行更改。非常感谢任何帮助。 - Cosmtar
你能否在with语句中添加read_only变量?例如:with { form: hours, read_only: read_only } - lifo
尝试一下:$form = $this->createForm(new SalesEntityType($entity), $entity, array('disabled' => true)); - Lighthart
2个回答

18
尝试:
$form = $this->createForm(
    new SalesEntityType($entity),
    $entity,
    [ 'disabled' => true ]
);
请参见:vendor/symfony/symfony/src/Symfony/Component/Form/CHANGELOG.md的第一行。

2
// It is the way more fast to disabled a form
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->setDisabled(true);
}    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接