簡體   English   中英

Cakephp分頁如何使用或條件

[英]Cakephp Pagination how to use or condition

我正在嘗試使用分頁器組件中的搜索來過濾配方。 但它僅在配方表的標題列中搜索。 我希望它也搜索配方表的正文列和標簽列。

在控制器中

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

當我查看$this->Paginator->settings['conditions']它看起來像這樣

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

我想擴展條件,以便也查看配方表的多個列,例如Recipe.title LIKERecipe.body LIKERecipe.tags LIKE

您需要在模型中使用自定義函數。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM