Symfony3:在分组ChoiceType时添加“多个”选项


Symfony3: Add 'multiple' option on grouping ChoiceType

我想无法使用分组选择进行多项选择,但出现错误:

"无法转换属性路径"命运者"的值:需要数组。"

代码:

    foreach ($manager->getRepository('CommonBundle:Compte')->findAll() as $value)
        $arrayCompte[$value->getPseudo()] = $value->getPseudo();
    foreach ($manager->getRepository('CommonBundle:Profil')->findAll() as $value)
        $arrayProfil[$value->getNom()] = $value->getNom();
    $arrayDestinataires['Profil'] = $arrayProfil;
    $arrayDestinataires['Compte'] = $arrayCompte;
    $ticketForm = $this->createFormBuilder($ticket)
    ->add('priorite',       ChoiceType::class, array(
        'multiple' => true, // working
        'choices' => array(
            'Faible' => 0,
            'Moyen' => 1,
            'Fort' => 2)))
    ->add('destinataires',  ChoiceType::class, array(
        'multiple' => true, //not working
        'choices' => $arrayDestinataires))

请注意,如果没有"'多个'=> true",它就可以工作。

请注意,某些选项(如"'扩展'=> true")有效。

编辑:变量"命运者"是一个多对多关系。显然这就是我收到错误的原因。

我需要从Builder创建自定义,重载这部分并在我这边处理它。

这意味着数组$arrayDestinataires不能呈现为选择列表。据我在您的代码中看到,这将是您的数组的最终结果

$arrayDestinataires = array(
     'Profil' => array (.....),
     'Compte' => array (.....)
)

此结构无法根据需要呈现,因为 Profil 和 Compte 可以是值,但相应的数组不能转换为字符串。

希望这对你有帮助。

问题是"命运者"是与"Compte"对象的多对多关系,我想添加"Profil"实体作为用户的快捷方式。为了处理这个问题,我向我的实体添加了一个数组变量来存储表单结果并使用它。