Pregunta

Estoy tratando de definir varios criterios para un solo campo en Symfony, pero cada vez que definen un segundo criterio, se sobrescribe la anterior. Aquí es un ejemplo de que mi código

  # 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);
  }

¿Hay una manera de definir más de uno por cada campo?

¿Fue útil?

Solución

En el caso de que usted tiene dos límites, que tiene que hacer algo como esto:

$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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top