奏鸣曲管理员 - sonata_type_choice_field_mask


SonataAdmin - sonata_type_choice_field_mask

    ->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"等选项。根据选择,将显示另一个框列表。一个框公司列表。但总是取决于选择,要过滤的公司列表。我希望看到一家公司的查询字段根据账单管理,"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()

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

    ->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
))