构建查询以搜索多个属性

时间:2017-05-27 10:50:58

标签: php sql symfony doctrine

我对编码非常陌生,特别是对于Symfony。但是现在我的老师给了我一个创建查询以在2个属性中搜索的任务。我已经开始编写查询,但仍然有很多缺乏。我想知道是否有人可以提供帮助,或者发送链接来帮助我完成它。

我需要制作一个搜索选项,查看Artikelnummer和Omschrijving。

/**
* @Route("/artikel/zoek", name="zoekartikel")
*/
Public function zoek(Request $request){
   $em = $this->getDoctrine()->getManager();
   $query = $em->createQuery(
       'SELECT a
       FROM AppBundle:Artikel a
       WHERE a.artikelnummer = input AND a.omschrijving LIKE input2'
   );
   $artikelen = $query->getResult();
   return new Response($this->render('search.html.twig',
   array('artikelen' => $artikelen)));

}

1 个答案:

答案 0 :(得分:0)

首先需要实例化Result Mapping

use Doctrine\ORM\Query\ResultSetMapping;

$rsm = new ResultSetMapping();

然后

$query = $em-> createNativeQuery(
       'SELECT a
       FROM AppBundle:Artikel a
       WHERE a.artikelnummer = ? AND a.omschrijving LIKE ?', 
       $rsm
   );

$query->setParameter(1, 'input1'); // or var
$query->setParameter(2, 'input2'); // or var
$artikelen = $query->getResult();
return new Response($this->render('search.html.twig',
   array('artikelen' => $artikelen)));

此处有更多文档http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/native-sql.html