2017-06-14 15 views
2

私はsymfonyの3 にこのコードをチェックボックスのリストを構築しようとしている:キャッチできる致命的なエラー:symfonyの3奇妙な「選択肢」エラー

$choices = [ 
     'a' => 'fsssssss', 
    ]; 

    $builder->add('memberships', ChoiceType::class, [ 
     'choices' => $choices, 
     'expanded' => true, 
     'multiple' => false 
    ]); 

は、次のエラーを返し、クラス教義\ ORMのオブジェクト\ PersistentCollectionをベンダ/ symfony/symfony/src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php(行73)の文字列に変換できませんでした。フィールドが正しく表示されます:

$choices = [ 
     'a' => 'fsssssss', 
     'd' => 'fsssssss', 
     'g' => 'fsssssss', 
    ]; 

    $builder->add('memberships', ChoiceType::class, [ 
     'choices' => $choices, 
     'expanded' => true, 
     'multiple' => false 
    ]); 

実際には、多くの組み合わせが動作し、多くは動作しません。私はどんなパターンも見なかった。

何か間違っていますか?クリアする必要のあるキャッシュがありますか?

+0

これを 'multiple '=> false'の下に追加してみてください:' choice_label' => function($ value、$ key、$ index){ return $ key; }、 ' –

+0

それは助けになりませんでした:( – user3429660

+0

fsssssssはあなたのオプションの値ではなく、キーです。 –

答えて

0

ちょうどこの質問クローズする:あなたはdata_classオプションとフォームフィールドでフォームを使用している場合

には、使用可能な選択肢で選択されるはずですエンティティのプロパティを表しEntityType

$builder->add('memberships', EntityType::class, [ 
     'class'  => MyClass::class, 
     'choices' => $choices, 
     'expanded' => true, 
     'multiple' => false 
    ]);