奏鸣曲表单字段 - 根据另一个模型字段

时间:2017-07-20 15:34:39

标签: symfony sonata-admin symfony-sonata sonata symfony-3.2

我有一个非常简单的问题,我认为这也很常见。我的sonata admin configureFormFields函数看起来像:

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->add('status', 'sonata_type_model', array(
            'required'  => true,
            'btn_add'   => false,
            'expanded'  => true,
        )
        ->add('activeReason', 'hidden')
        ->add('inactiveReason', 'hidden')
        ->add('onHoldReason', 'hidden')
    ;
}

'状态' entity定义了__toString()方法,值为:

  • 有效
  • 无效
  • 保留

我想要的是,如果我选择' Active'从状态,“活跃的理由”来看,应显示表单字段,而选择“非活动”字段。将隐藏另外两个原因字段,只显示“不活动的原因”。保持选择的字段等(它将隐藏其他2并只显示' onHoldReason'表单字段)。

我知道自定义jQuery函数是可行的,但是有一个SONATA ADMIN WAY或SYMFONY WAY吗?我非常了解奏鸣曲表格类型sonata_type_choice_field_mask,它必须有一系列选择。有没有办法结合这个功能或做一些类似的东西?

1 个答案:

答案 0 :(得分:1)

您可以使用此奏鸣曲类型执行此操作。看看这个链接,他有同样的问题并解决了它:

SonataAdmin - sonata_type_choice_field_mask