Несколько критериев для одного поля в Symfony? - PullRequest
2 голосов
/ 10 апреля 2009

Я пытаюсь определить несколько критериев для одного поля в 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);
  }

Есть ли способ определить более одного на поле?

1 Ответ

3 голосов
/ 10 апреля 2009

Для случая, когда у вас есть оба ограничения, вам нужно сделать что-то вроде этого:

$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);
...