【问题标题】:Sonata form field - change a field based on the selection of another model fieldSonata 表单字段 - 根据另一个模型字段的选择更改字段
【发布时间】:2017-07-20 15:34:39
【问题描述】:

我有一个非常简单的问题,我认为它也很常见。我的奏鸣曲管理员 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')
    ;
}

“状态”实体定义了 __toString() 方法,其值为:

  • 活动
  • 无效
  • 按住

我想要的是,如果我从状态中选择“Active”,则应该显示“activeReason”表单字段,而选择“Inactive”将隐藏其他 2 个原因字段并仅显示“inactiveReason”字段和所以使用 Hold 选择(它会隐藏其他 2 个并只显示 'onHoldReason' 表单字段)。

我知道可以使用自定义 jQuery 函数,但是有 SONATA ADMIN WAY 或 SYMFONY WAY 吗?我很清楚奏鸣曲形式类型sonata_type_choice_field_mask 必须有一系列选择。有什么办法可以结合这个功能或做类似的事情吗?

【问题讨论】:

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


    【解决方案1】:

    你可以用这个奏鸣曲类型来做到这一点。看看这个链接,他有同样的问题并解决了它:

    SonataAdmin - sonata_type_choice_field_mask

    【讨论】:

    • 您好,感谢您的回答。但我认为你没有明白我的主要观点。我不能使用choise_filed_mask,因为我选择的所有值都来自实体的值,并且必须使用sonata_type_model 才能获得结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    相关资源
    最近更新 更多