2011-08-17 49 views
0
public function executeSearch(sfWebRequest $request) 
    {  
    $q = Doctrine_Core::getTable('News') 
       ->createQuery('a') 
       ->where("a.title LIKE ?", array($request->getParameter('text'))) 

    if ($request->getParameter('sub')){ 
       ->andWhere('a.subtile = 2'); 
    } 
    $test = $q->execute(); 
    } 

爲什麼不能正常工作?我有一個解析錯誤。 Symfony 1.4應該怎麼做?在Symfony中使用Doctrine搜索系統

+0

如果你使用MySQL,請照顧 - >在哪裏(「a.title LIKE %?%「),它不會在標題列上使用可能的索引! MySQL僅支持右手笑話者(標題LIKE?%)。 – domi27

回答

2
public function executeSearch(sfWebRequest $request) 
{  
    $q = Doctrine_Core::getTable('News') 
      ->createQuery('a') 
      ->where("a.title LIKE ?", array($request->getParameter('text'))); 

    if ($request->getParameter('sub')){ 
      $test->andWhere('a.subtile = 2'); 
    } 
    $test = $q->execute(); 
} 

將是正確的語法

也許你也想%%添加到您喜歡的查詢->where("a.title LIKE %?%"