私はSymfony 2とフォームビルダーに少し問題があります。 Doctrine findAllの結果に基づいてChoiceTypeフィールドを作成したいとします。symfony 2、エンティティ上のChoiceTypeを持つcreateFormBuilder、choice_labelはint
選択肢は配列ですが、choice_label関数では最初の変数はintです!
私が説明のために少しのコード入れ:もちろん
$categories = $categoryRepository->findAll();
foreach ($categories as $value) {
echo "category name : ".$value->getName()."<br/>";
}
/* Result :
category name : First
category name : Second
*/
$form = $this->createFormBuilder($dance)
->add('name', TextType::class, array('label' => 'Nom de la dance'))
->add('description', TextareaType::class, array('label' => 'Description'))
->add('creationDate', DateTimeType::class, array('label' => 'Date de création'))
->add('category', ChoiceType::class, [
'choices' => $categories,
'choice_label' => function($category, $key, $index) {
var_dump($category);
// Result : int(0)
return $category->getName();
// Exception !
},
'choice_attr' => function($category, $key, $index) {
return ['class' => $category->getId()];
},
])
->add('save', SubmitType::class, array('label' => 'Sauvegarder'))
->getForm();
を、私は致命的なエラーを持っている:メンバ関数のgetName(の呼び出し)整数に...
誰かが私を助けることができますこの問題 ?
ありがとうございました!
を私は '$のcategories'が配列であることを確認してください'choices'オプションに渡されたときのオブジェクト'' choice_label''オプションにコメントすると、 '' choice_attr''オプションにエラーが渡されます。これはうまくいきますか? – yceruto