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