SonataAdmin - sonata_type_choice_field_mask

时间:2016-04-25 12:43:46

标签: php symfony sonata-admin

大家好,

            ->add('billManagement', 'sonata_type_choice_field_mask', array(
            'choices' => array(
                'FI' => 'FI',
                'GI' => 'GI'
            ),
            'map' => array(
                'FI' => array('company'),
                'GI' => array('company')
            ),
            'empty_value' => 'Mode de financement',
            'required' => true
        ))
        ->add('company')
        ->end()

我在这里显示一个列表框,其中包含" GI"或者" FI"。 根据选择,显示另一个框列表。盒子公司列表。 但总是取决于选择,要筛选的公司列表。 我希望看到一家公司的查询字段根据billManagement的选择而变化," FI"或" GI"。

我尝试了但是它不起作用

            ->add('billManagement', 'sonata_type_choice_field_mask', array(
            'choices' => array(
                'FI' => 'FI',
                'GI' => 'GI'
            ),
            'map' => array(
                'FI' => $formMapper->add('company', 'sonata_type_model', array(
                    'class' => 'AppBundle\Entity\User\Company',
                    'query' => $companyFinance
                )),
                'GI' => $formMapper->add('company', 'sonata_type_model', array(
                    'class' => 'AppBundle\Entity\User\Company',
                    'query' => $company
                )),
            ),
            'empty_value' => 'Mode de financement',
            'required' => true
        ))
        ->end()

提前谢谢

于连

ps:对不起我的英语!

1 个答案:

答案 0 :(得分:1)

我已经实现了我想做的事情。 我只添加两个未映射的字段

            ->add('billManagement', 'sonata_type_choice_field_mask', array(
            'choices' => array(
                'FI' => 'FI',
                'GI' => 'GI'
            ),
            'map' => array(
                'FI' => array('companyFinance'),
                'GI' => array('company'),
        ),
            'empty_value' => 'Mode de financement',
            'required' => true
        ))
        ->add('companyFinance', 'sonata_type_model', array(
            'class' => 'AppBundle\Entity\User\Company',
            'query' => $companyFinance,
            'mapped' => false
        ))
        ->add('company', 'sonata_type_model', array(
            'class' => 'AppBundle\Entity\User\Company',
            'query' => $company,
            'mapped' => false
        ))