2017-11-08 24 views
0

페이징 인 구성 요소에서 검색을 사용하여 레시피를 필터링하려고합니다. 그러나 그것은 요리법 테이블의 제목 열에서만 검색합니다. 나는 또한 조리법 테이블의 본문 열과 꼬리표 열을 검색하기를 원합니다. 컨트롤러Cakephp 페이지 매김 사용법 또는 조건

$this->Paginator->settings = $this->paginate; 
$this->Paginator->settings['limit']=$this->pageLimit; 
$this->Paginator->settings['maxLimit']=$this->maxLimit; 
$this->Paginator->settings['conditions'] = $this->Recipe->parseCriteria($this->Prg->parsedParams()); 

에서

나는, 그것이 내가 또한 더 Recipe.title LIKE 같은 레시피 테이블의 여러 열을 조사 할 수있는 조건을 확장 할이

Array 
(
    [Recipe.title LIKE] => %chocolate% 
) 

처럼 보이는 $this->Paginator->settings['conditions']으로 보았을 때 Recipe.body LIKERecipe.tags LIKE.

답변

0

모델에서 사용자 지정 기능을 사용해야합니다.

public $filterArgs = array(
    'filter' => array(
     'type' => 'query', 
     'method' => 'orConditions' 
    ), 
); 

public function orConditions($data = array()) { 
    $filter = $data['filter']; 
    $condition = array(
     'OR' => array(
      $this->alias . '.title LIKE' => '%' . $filter . '%', 
      $this->alias . '.body LIKE' => '%' . $filter . '%', 
      $this->alias . '.body LIKE' => '%' . $filter . '%', 
     ) 
    ); 
    return $condition; 
}