我有兩個形式的控制器內的第一種形式工作正常但是預期我的第二個表不工作。Symfony的格式錯誤:主義「式的預期參數‘ ORM QueryBuilder的’,‘學說 ORM 查詢’給予」
myController的:
// Second Form
$formTwo = $this->get('form.factory')->createNamedBuilder('form2name', new CarType(), null, array())
->getForm();
if('POST' === $request->getMethod()) {
if ($request->request->has('form1name')) {
// handle the first form
}
if ($request->request->has('form2name')) {
// handle the second form
// get the id value of the selected value.
}
}
我CarType:
public function buildForm(FormBuilderInterface $builder, array $options){
$builder->add('makename','entity',array(
'class'=> 'MyTestBundle:Car\CarModel',
'query_builder'=>function(EntityRepository $er){
return $query = $er->createQueryBuilder('s')
->select('s.makename')
->distinct()
->orderBy('s.makename','ASC');
}
));
$builder->add('search','submit',array());
}
Error : "Expected argument of type "Doctrine\ORM\QueryBuilder", "Doctrine\ORM\Query" given"
Symfony的版本:2.7
取出getQuery(),也許改變$查詢到$ QB只是爲了說清楚,你是在處理一個查詢生成器對象,而不是查詢對象。兩件完全不同的事情。 http://symfony.com/doc/current/reference/forms/types/entity.html#using-a-custom-query-for-the-entities。你可能會得到一個不同的錯誤。不確定對你的查詢有什麼不同。必須嘗試一下,看看。 – Cerad
刪除' - > getQuery()'。如果沒有,您將返回查詢構建器,並返回查詢對象。你也可以刪除'$ query =',因爲它從來沒有用過這麼多。 – qooplmao