Для CakePhp 2.5Paginating results from function function
У меня есть следующая функция поиска в моем контроллере.
public function search($query = null, $lim = null)
{
$tokens = explode(" ", $query);
$this->Paginator->settings = array(
'conditions' => array(
'Customer.site_id LIKE' => '%' . $this->viewVars['shopId'],
'CONCAT(Customer.first_name," ",Customer.last_name," ",Customer.organisation) LIKE' => '%' . implode(' ', $tokens) . '%'
),
'limit' => $lim
);
$this->set('customers', $this->Paginator->paginate());
}
Это прекрасно работает и получает результаты, которые я хочу.
Однако было предложено мне, чтобы я поставил эти функции поиска в свою модель. Я могу легко сделать это, и сделал это подобно тому, как следует в моей модели:
public function getActiveTasks($id){
return $this->Task->find('all', array(
'conditions' => array(
'Task.customer_id' => $id,
'Task.status' => 0
),
'order' => array('Task.due_date ASC'),
'recursive' => -1,
));
}
Проблема у меня в том, что я не могу (или не знаю как) использовать Paginator с пользовательским поиском. Есть ли способ разбивать на страницы результаты из пользовательских функций?
т.е. я могу сделать следующее:
public function CustomModelSearch($query = null, $lim = null)
{
return $this->Task->find('all', array(
'conditions' => array(
'Customer.site_id LIKE' => '%' . $this->viewVars['shopId'],
'CONCAT(Customer.first_name," ",Customer.last_name," ",Customer.organisation) LIKE' => '%' . implode(' ', $tokens) . '%'
),
'limit' => $lim
));
}
, а затем в вызове контроллера
$results = $this->Model->CustomModelSearch($query, $lim);
$this->set('results',$this->Paginate($results));
Я не могу найти способ, чтобы передать результаты в постраничной навигации, чтобы сделать постраничного результаты в целях , если я не использую его через контроллер в соответствии с первым фрагментом кода, который мне сказал, это не хорошие принципы MVC.
Я знаю об этом. Выложенная функция является лишь примером, иллюстрирующим мою точку зрения. –
Положите ваш вопрос, объясните вашу проблему, и эта ошибка даст вам и вашему коду примеры wihtout – CoolLife