2017-03-07 12 views
1

setParams関数を使用して、doctrineリクエストにパラメータをバインドしたいとします。私のコードは次のとおりです。間違いがあれば修正してください。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()));` 

ところでi「はJobeetので見ますsymfony 1.4初心者のチュートリアルに従っていることを確認してください。symfony 1.4を初心者にしていて、それを強制的に使用する必要がなければ、間違いなくあなたはより多くの条件を持っている場合は

だけを使用します。

EDIT 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を研究していますが、私の現在の働く会社のcozはまだ使用し維持しています。ちなみに、私はもう1つ質問がありますwhere()パラメータ2は配列として設定できますか?私は複数の条件を持ちたいと思う。 – d3no

+0

編集した回答を見る – Mawcel

関連する問題