【问题标题】:symfony2 form disablesymfony2 表单禁用
【发布时间】:2012-11-27 04:00: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 在子窗体中的工作正常,就像在主窗体中一样。只是主窗体或子窗体中的下拉列表都没有被禁止更改。任何帮助表示赞赏。
  • 可以在 with 语句中添加 read_only 变量吗?即:带有{形式:小时,只读:只读}
  • 试试:$form = $this->createForm(new SalesEntityType($entity), $entity, array('disabled' => true) );

标签: php forms symfony twig subforms


【解决方案1】:

试试:

$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);
    }    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-03
      • 2011-11-03
      • 2023-03-10
      • 1970-01-01
      • 2011-09-20
      • 2023-03-07
      • 2013-09-23
      相关资源
      最近更新 更多