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 设置似乎没有级联到包含的子表单。有没有办法处理这个?

4

2 回答 2

18

尝试:

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

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

于 2012-12-10T17:30:01.053 回答
2
// It is the way more fast to disabled a form
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->setDisabled(true);
}    
于 2015-09-02T15:00:18.897 回答