문제

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

필드 당 하나 이상을 정의하는 방법이 있습니까?

도움이 되었습니까?

해결책

두 한계가 모두있는 경우 다음과 같은 작업을 수행해야합니다.

$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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top