symfony2表单禁用

时间:2012-12-09 16:06:44

标签: php forms symfony twig subforms

我使用相同的表单来“预览”对象,因为我要“编辑/更新”同一个对象。 在我的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设置似乎没有级联到包含的子表单。有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:17)

尝试:

$form = $this->createForm(
    new SalesEntityType($entity),
    $entity,
    [ 'disabled' => true ]
);

请参阅:vendor / symfony / symfony / src / Symfony / Component / Form / CHANGELOG.md,第一行

答案 1 :(得分:2)

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