Cakephp Pagination как использовать или состояние

Я пытаюсь отфильтровать рецепты с помощью поиска в компоненте paginator. Но это только поиск в столбце заголовка таблицы рецептов. Я хочу, чтобы он также осуществлял поиск по столбцу тела и столбцам тегов таблицы рецептов.

В контроллере

$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,

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]