[英]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 LIKE
, Recipe.body LIKE
和Recipe.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.