Php symfony2表单禁用

Php symfony2表单禁用,php,forms,symfony,twig,subforms,Php,Forms,Symfony,Twig,Subforms,我使用相同的表单“预览”对象,就像我“编辑/更新”相同的对象一样。 在控制器的myshowAction()中,我有以下代码: $form = $this->createForm(new SalesEntityType($entity), $entity, array('read_only' => true) ); 这段代码对于主窗体非常有用,但是有许多子窗体通过包含而成为其中的一部分。show.html.twig中的一个示例是: {% include 'TargetCommonBu

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

$form = $this->createForm(new SalesEntityType($entity), $entity, array('read_only' => true) );
这段代码对于主窗体非常有用,但是有许多子窗体通过包含而成为其中的一部分。show.html.twig中的一个示例是:

{% include 'TargetCommonBundle:Hours:hoursForm.html.twig' with { form: hours } %}
不幸的是,父窗体上的只读设置似乎没有级联到包含的子窗体。有没有办法解决这个问题?

试试:


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

看起来read_只在子表单中工作,就像在主表单中一样。只是主窗体或子窗体中的所有下拉列表都没有被禁止更改。非常感谢您的帮助。能否将只读变量添加到with语句中?ie:使用{form:hours,read_only:read_only}Try:$form=$this->createForm(新SalesEntityType($entity),$entity,array('disabled'=>true));
// It is the way more fast to disabled a form
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->setDisabled(true);
}    
// It is the way more fast to disabled a form
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->setDisabled(true);
}