2017-03-07 43 views
1

我想使用setParams函數將參數綁定到我的教義請求。以下是我的代碼,如果您發現任何錯誤,請糾正我。Symfony 1.4 Doctrine_query如何設置參數?

$input = $request->getParameter('query'); 

$result = Doctrine_Query::create() 
      ->from('jobeetCategory') 
      ->where("name LIKE '$:name'") 
      ->setParams(['name'=>$input]) 
      ->fetchArray(); 

回答

2

你不需要嘗試使用setParams()

$result = Doctrine_Query::create() 
     ->from('jobeetCategory') 
     ->where('name LIKE ?', $input) 
     ->fetchArray() 
; 

從Sf1.4文檔:

->where('j.expires_at > ?', date('Y-m-d H:i:s', time()));` 

BTW我用「Jobeet的看'你正在遵循symfony 1.4初學者教程。如果你是初學symfony 1.4並且沒有被迫使用它,你應該肯定學習Symfony的2/3,而不是時,symfony 1.4不再受支持sensiolabs和社區是相當死(與Symfony的2/3是真棒)

編輯:

如果你有更多的條件,只是使用andWhere()或 'orWhere()',因爲你需要

$result = Doctrine_Query::create() 
    ->from('jobeetCategory') 
    ->where('name LIKE ?', $input['name']) 
    ->andWhere('price < ?', $input['price']) 
    ->orWhere('shipping > ?', $input['shipping']) 
    ->fetchArray() 
; 

更多參考之多:http://doctrine.readthedocs.io/en/latest/en/manual/dql-doctrine-query-language.html#where-clause

+0

感謝您的回答和建議。我學習s1.4是我現在仍在使用和維護的工作公司的利益。順便說一句,我還有一個問題是where()參數2可以設置爲數組嗎?我想有不止一個條件。 – d3no

+0

看到我編輯的答案 – Mawcel