这是我的问题。
我用buildForm
symfony 2.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 代码,它们是相同的。
I put a var_dump($object)
将表单与请求绑定后在控制器上$form->bind($request)
看来当我使用query_builder
选项combat
为空,而如果我不使用它,则它不为空。
我无法理解为什么?
我在网上发现很少有帖子提出同样的问题,但没有一个给出答案。
这里是否可能存在 symfony 问题或者我做错了什么?