这是 ProduitRepository 中的函数“myList”:
public function myList($id)
{
$qb = $this->createQueryBuilder('p');
$qb->where('p.id > 10');
return $qb->getQuery()
->getResult();
}
这是 ProduitType.php :
中的builderForm public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('nom', 'text', array('required' => true))
->add('description', 'textarea', array('required' => false))
->add('prix', 'money', array('required' => true))
->add('publication', 'checkbox', array('required' => false))
->add('image', new ImageType() )
->add('sousCategorie', 'entity',array(
'class' => 'StoreCategorieBundle:SousCategorie',
'property' => 'nom',
'multiple' => false,
'expanded' => false ))
->add('produit', 'entity', array(
'class' => 'StoreProduitBundle:Produit',
'property' => 'nom',
'query_builder' => function(\Store\ProduitBundle\Entity\ProduitRepository $er) {
return $er->myList();}
)
);
}
这是错误消息: “Doctrine \ ORM \ QueryBuilder”类型的预期参数,“数组”给出
答案 0 :(得分:7)
在myList()中,您没有返回QueryBuilder对象,而是返回一个表示QueryBuilder对象结果的数组。尝试在myList($ id)中切换return语句以返回$ qb;