Как разбить результаты поиска на страницы - PullRequest
0 голосов
/ 10 апреля 2011
<?php   
  function search() {
    $this->Table->recursive = 0;
    if ($this->data['Table']['search_text']) {
        $this->set('Table', 
        $this->paginate('Table', array('or' => array('Table.field LIKE' => '%' . 
        $this->data['Table']['search_text'] . '%', 'Table.field_2 LIKE' => '%' . 
        $this->data['Table']['search_text'] . '%', 'Table.field_3 LIKE' => '%' . 
        $this->data['Table']['search_text'] . '%', 'Table.field_4 LIKE' => '%' . 
        $this->data['Table']['search_text'] . '%', 'Table.field_5 LIKE' => '%' . 
        $this->data['Table']['search_text'] . '%'))));
    }
    else {
        $this->set('Tables', $this->paginate());
    }
  }
?>

Как разбить на страницы результаты поиска метода ()?

1 Ответ

0 голосов
/ 11 апреля 2011

Вы разбили его на страницы, переменная Tables теперь будет содержать нумерацию страниц.

Я бы порекомендовал посмотреть на http://book.cakephp.org/view/1231/Pagination, чтобы разобраться с нумерацией страниц.

Если вы специально хотели, чтобы метод search() возвращал результат разбиения на страницы, который вы могли бы сделать:

<?php   
  function search() {
    $data = null;
    $this->Table->recursive = 0;
    if ($this->data['Table']['search_text']) {
        $data = 
          $this->paginate('Table', array('or' => array('Table.field LIKE' => '%' . 
          $this->data['Table']['search_text'] . '%', 'Table.field_2 LIKE' => '%' . 
          $this->data['Table']['search_text'] . '%', 'Table.field_3 LIKE' => '%' . 
          $this->data['Table']['search_text'] . '%', 'Table.field_4 LIKE' => '%' . 
          $this->data['Table']['search_text'] . '%', 'Table.field_5 LIKE' => '%' . 
          $this->data['Table']['search_text'] . '%')));
    }
    else {
        $data = $this->paginate();
    }
    return $data;
  }
?>

Возвращаемое значение поиска теперь будет содержать результат разбиения на страницы.

...