2017-03-07 2 views
1

Ich möchte einen Parameter an meine Doktrin Anfrage mit der setParams Funktion binden. Folgendes ist mein Code, bitte korrigieren Sie mich, wenn Sie Fehler sehen.Symfony 1.4 Doctrine_query Wie setzt man Parameter?

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

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

Antwort

2

Sie brauchen nicht setParams() zu verwenden, um zu versuchen:

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

Aus dem Sf1.4 docs:

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

BTW i von dem ‚jobeet sehen 'dass du dem symfony 1.4 Anfänger Tutorial folgst. Wenn du Anfänger zu symfony 1.4 bist und nicht gezwungen bist es zu benutzen, solltest du es auf jeden Fall tun lernen Symfony 2/3 statt, symfony 1.4 wird nicht mehr von sensiolabs und die Gemeinde ist ziemlich tot (und Symfony 2/3 ist genial)

EDIT:.

Wenn Sie nur mehr Bedingungen verwenden andWhere() oder 'orWhere()' so viel wie Sie

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

für weitere Referenz benötigen: http://doctrine.readthedocs.io/en/latest/en/manual/dql-doctrine-query-language.html#where-clause

+0

Vielen Dank für Ihre Antworten und beraten. Ich studiere s1.4 ist coz von meiner gegenwärtigen Arbeitsgesellschaft, die immer noch verwendet und aufrechterhält. Übrigens, ich habe noch eine Frage ist der wo() Parameter 2 als Array gesetzt werden kann? Ich hätte gerne mehr als eine Bedingung. – d3no

+0

Siehe meine bearbeitete Antwort – Mawcel