0
/**
* Search result information between two dates
*
*@Route("/search/{startDate}/{endDate}/{type}", name="maintenance_search_result")
*@Method("GET")
*/
public function searchResultAction($startDate, $endDate, $type)
{
$em = $this->getDoctrine()->getManager()->getRepository('CarMaintenanceBundle:Maintenance');
$query = $em->createQueryBuilder('c')
->select('c.id')
->addSelect('c.type')
->addSelect('c.date')
->addSelect('c.cost')
->addSelect('c.remark')
->where('c.date > :SDATE')->setParameter('SDATE', $startDate)
->andWhere('c.date < :EDATE')->setParameter('EDATE', $endDate);
if ("All" != $type){
$query->andWhere('c.type = :TYPE1')->setParameter('TYPE1', $type);
}
$query->orderBy('c.date', 'DESC')
->getQuery();
$SearchRes = $query->getResult();
return $this->render('maintenance/search_result.html.twig', array(
'SearchResults'=> $SearchRes,));
}
という名前の未定義のメソッド私は次のエラーを持っている:私はこのように書くときsymfonyの3 - "のgetResult"
Attempted to call an undefined method named "getResult" of class "Doctrine\ORM\QueryBuilder".
、問題はありません。検索結果が表示されます。
public function searchResultAction($startDate, $endDate, $type)
{
$em = $this->getDoctrine()->getManager()->getRepository('CarMaintenanceBundle:Maintenance');
if ("All" != $type){
$query = $em->createQueryBuilder('c')
->select('c.id')
->addSelect('c.type')
->addSelect('c.date')
->addSelect('c.cost')
->addSelect('c.remark')
->where('c.date > :SDATE')->setParameter('SDATE', $startDate)
->andWhere('c.date < :EDATE')->setParameter('EDATE', $endDate)
->andWhere('c.type = :TYPE1')->setParameter('TYPE1', $type)
->orderBy('c.date', 'DESC')
->getQuery();
} else {
$query = $em->createQueryBuilder('c')
->select('c.id')
->addSelect('c.type')
->addSelect('c.date')
->addSelect('c.cost')
->addSelect('c.remark')
->where('c.date > :SDATE')->setParameter('SDATE', $startDate)
->andWhere('c.date < :EDATE')->setParameter('EDATE', $endDate)
->orderBy('c.date', 'DESC')
->getQuery();
}
$SearchRes = $query->getResult();
return $this->render('maintenance/search_result.html.twig', array(
'SearchResults'=> $SearchRes,));
}
最短のコードで何が問題になっていますか?
ヒント:
は、このトリックを行うつもりさqueryBuilderオブジェクトは、クエリオブジェクトと同じではありません。 queryBuilder = $ em-> createQueryBuilder( 'c')から始め、何が起こるかを見てみましょう。 – Cerad