2014-03-14 2 views
0

cakephp에서 검색 기능을 사용하고 있습니다. 검색은 특정 범위, 특정 범주, 만든 날짜 등의 매개 변수의 수를 기반으로합니다. 대부분의 매개 변수는 필수는 아닙니다. 이러한 조건을 단일 where 절 (필수 필드가 아님)에서 지정할 수있는 방법은 무엇입니까? 값의 수는 다른 카테고리에 따라 제품과 같이 변경 될 수 있습니다.CakePHP 쿼리의 동적 조건

답변

0

조건이 배열로 전달되기 때문에이 배열을 동적으로 작성할 수 있습니다 (그러나 어떤 필드가 조건의 일부인지 결정한 것입니다). 그런 다음 해당 변수를 조건으로 사용하십시오.

예. 이 쿼리

$cheapJacuzzis = $this->Item->find(
    'all', 
    array(
     'conditions' => array(
      'Item.price <' => 300, 
      'Item.category' => 'Jacuzzi' 
     ), 
     'order' => 'Item.price ASC' 
    ) 
); 

이는 동적 배열 CakePHP를 구축하는 데 필요한 모든 경우에 수행 할 수 있습니다

$conditions = array(
    'Item.price <' => 300, 
    'Item.category' => 'Jacuzzi' 
); 

$cheapJacuzzis = $this->Item->find(
    'all', 
    array(
     'conditions' => $conditions, 
     'order' => 'Item.price ASC' 
    ) 
); 

이 매개 변수 집합으로 요청된다.