2017-11-08 10 views
0

paginatorコンポーネントで検索を使用してレシピをフィルタリングしようとしています。しかし、レシピテーブルのタイトル列でのみ検索されます。また、レシピテーブルの本文列とタグ列を検索するようにします。コントローラ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 LIKEおよびRecipe.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; 
} 
関連する問題