Почему при любом поиске по ключевому слову все время появляется нумерация страниц? - PullRequest
0 голосов
/ 31 октября 2011

Я создал нумерацию страниц для своей страницы поиска.Контроллер -

public function action_index()
        {
            if(!empty($_GET['search'])){
                $pagination= Pagination::factory(array(
                    'total_items' => Model::factory('index')->get_count(),
                    'items_per_page' => 2,
                ));
                $this->template->content = View::factory('index/query')
                        ->set('query', Model::factory('index')->get_articles_from_query($_GET['search'], $pagination->offset, $pagination->items_per_page))
                        ->set('pagination', $pagination->render());
            }
            else{
                $this->template->content = View::factory('index/error')->set('message', 'Nav rakstu ar šādu atslēgvārdu.');
            }



    }

Вид -

    <?php

        foreach ($query as $item):

            echo '<h2><a href="/article/' . $item['slug'] . '">' . $item['virsraksts'] . '</a></h2>';
            echo '<p>' . nl2br($item['saturs']) . '</p>';

        endforeach;

        endif;
        echo $pagination;


?>

Модель -

 public function get_articles_from_query($squery, $offset, $limit){

        $query = DB::query(Database::SELECT, 'SELECT * FROM ieraksti WHERE virsraksts like :squery OR slug like :squery OR saturs like :squery ORDER By id DESC LIMIT :offset, :limit ')
                ->parameters(array(':squery' => "%$squery%", ':offset' => $offset, ':limit' => $limit))->execute()->as_array();
        return $query;
    }

Нумерация страниц отображается постоянно.Я хочу, чтобы нумерация страниц, когда статьи нашли более 2. Где ошибка?В чем ошибка?

1 Ответ

1 голос
/ 31 октября 2011

Я предполагаю, что вы используете Kohana 3.x, затем установите auto_hide на true.

$pagination= Pagination::factory(array(
                 'total_items' => Model::factory('index')->get_count(),
                 'items_per_page' => 2,
                 'auto_hide' => true
             ));

Редактировать

Kohana 2.3.x также поддерживает auto_hide. См. документы для нумерации страниц .

Редактировать 2 Если вышеперечисленное не работает для вас, не назначайте пагинацию для представления, если у вас меньше total_items, чем items_per_page.

        if(!empty($_GET['search'])){
            $items_per_page = 2;
            $total_items = Model::factory('index')->get_count();

            $pagination= Pagination::factory(array(
                'total_items' => $total_items,
                'items_per_page' => $items_per_page,
            ));
            $this->template->content = View::factory('index/query')
                ->set('query', Model::factory('index')->get_articles_from_query($_GET['search'], $pagination->offset, $pagination->items_per_page));

            if($items_per_page < $total_items) {
                $this->template->content->set('pagination', $pagination->render());
            }
            else {
                $this->template->content->set('pagination', '');
            }
        }
...