2009-04-10 16 views
2

J'essaie de définir plusieurs critères pour un seul champ dans symfony, mais chaque fois que je définis un second critère, il écrase le précédent. Voici un exemple de mon code:Critère de multi-critère pour un seul champ dans symfony?

# build query to fetch search results 
    $c = new Criteria(); 

    # set minimum price 
    if($request->getPostParameter('price_from') > 0) 
    { 
    $c->add(HomeModelPeer::PRICE, 
      $request->getPostParameter('price_from'), 
      Criteria::GREATER_EQUAL); 
    } 

    # set maximum price 
    if($request->getPostParameter('price_to') > 0) 
    { 
    $c->add(HomeModelPeer::PRICE, 
      $request->getPostParameter('price_to'), 
      Criteria::LESS_EQUAL); 
    } 

Existe-t-il un moyen de définir plus d'un champ?

Répondre

2

Pour le cas où vous avez les deux limites, vous devez faire quelque chose comme ceci:

$c = new Criteria(); 
$c2 = $c->getNewCriterion(HomeModelPeer::PRICE, 
    $request->getPostParameter('price_from'), 
    Criteria::GREATER_EQUAL); 
$c2->addAnd($c->getNewCriterion(HomeModelPeer::PRICE, 
    $request->getPostParameter('price_to'), 
    Criteria::LESS_EQUAL) 
    ); 
$c->add($c2); 
+0

Merci. Ceci est exactement ce que je cherchais. –

Questions connexes