これが私の問題です。buildForm
フォームを作成するためにsymfony2.1のメソッドを使用します。次のコードを使用すると、すべてが正常に機能します。
$builder->add('combat','entity',array(
class' => 'KarateCompetitionBundle:CompetitionCombat',
'empty_value' => 'Sélectionner un combat'));
ただし、一部のみをフィルタリングして表示したいと思いますCombat
。そのため、このquery_builder
オプションを使用する必要があります。そうすると、This value is not valid
エラーメッセージが表示されます。コードは次のとおりです。
$builder->add('combat','entity',array(
'class' => 'KarateCompetitionBundle:CompetitionCombat',
'empty_value' => 'Sélectionner un combat',
'query_builder' => function(CombatRepository $cr) {
return $cr->getAllWithoutBilanQueryBuilder();}));
getAllWithoutBilanQueryBuilder
問題を見つけることができるように、少なくともコードを減らします(つまり、メソッドのフィルタリングを行いません)。
public function getAllWithoutBilanQueryBuilder(){
$queryBuilder = $this->getEntityManager()->createQueryBuilder();
return $queryBuilder->select('c')->from('KarateEntrainementBundle:CompetitionCombat', 'c');
}
それぞれの場合に生成される両方のhtmlコードを比較しましたが、それらは同じです。
var_dump($object)
フォームをリクエストにバインドした後、コントローラーにを設定しました。オプション$form->bind($request)
を使用するとnullになりますが、使用しない場合はnullではないようです。query_builder
combat
どうしてかわからないの?同じ問題の投稿はウェブ上にほとんど見つかりませんでしたが、答えのある投稿はありませんでした。ここにsymfonyの問題がある可能性はありますか、それとも私は何か間違ったことをしていますか?