2017-05-27 95 views
-2

我對編碼非常陌生,尤其是Symfony。但是現在我的老師給了我一個任務來創建一個查詢來在兩個屬性中進行搜索。我已經開始編寫查詢,但仍然有很多缺乏。我想知道是否有人可以幫忙,或發送鏈接幫助我完成它。構建查詢以搜索多個屬性

我需要做一個搜索選項,查找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))); 

} 
+0

如果'input'和'input2'只是字符串使用它像這'WHERE a.artikelnummer ='輸入'AND a.omschrijving LIKE'input2''並且也替換第一個'a' aft er'SELECT'帶字符'*'。 –

+0

我在這裏定義字符串時遇到問題。所以他們還沒有定義 – Colin

+0

好吧。首先嚐試使用一些硬編碼的字符串,以便在查詢之後查看查詢是否正常工作,從而可以相應地輸入字符串。 –

回答

0

您需要先實例結果映射

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

+0

爲什麼在使用NativeQuery和ResultSetMapping進行此任務時,它可以像使用DQL一樣輕鬆地完成(實際上,完全相同)並且沒有ResultSetMapping? – ccKep