#php #codeigniter #pagination
#php #codeigniter #разбивка на страницы
Вопрос:
<?php
class Books extends CI_Controller {
function __construct() {
parent::__construct();
$this->load->helper('url');
}
function index() {
// load pagination class
$this->load->library('pagination');
$config['base_url'] = base_url().'books/index/';
$config['total_rows'] = 2;
$config['per_page'] = '5';
$config['full_tag_open'] = '<p>';
$config['full_tag_close'] = '</p>';
$this->pagination->initialize($config);
echo $this->pagination->create_links();
}
}
?>
Функция create_links(); похоже, не работает. Я не получаю никаких ошибок, но он просто возвращает пустую строку. Я пробовал оба http://blip.tv/nettuts/codeigniter-from-scratch-day-7-2690301 и http://godbit.com/article/pagination-with-code-igniter учебные пособия.
Я знаю, что в документации говорится http://codeigniter.com/user_guide/libraries/pagination.html The create_links() function returns an empty string when there is no pagination to show.
но как мне это исправить? Спасибо вам!
Цитата из блока
Ответ №1:
Я думаю, потому что у вас нет никаких данных для разбивки на страницы. Это рабочий пример:
$this->load->model('books_model', 'books');
$offset = $this->uri->segment(n);
$per_page = 5;
$total = $this->books->total();
$data['result'] = $this->books->get_all($per_page, $offset);
$config['base_url'] = base_url().'books/index/';
$config['total_rows'] = $total;
$config['per_page'] = $per_page;
$this->load->vars($data); // !!!
$this->pagination->initialize($config);
Я надеюсь, что это поможет вам
Комментарии:
1. Если у вас нет модели, вы можете попробовать разбить массив на страницы: $data = array(‘страница 1’, ‘страница 2’) и т.д..
2. Да, в руководствах никогда не упоминалось о необходимости загружать $ data в виде переменных $this-> load-> vars($data). Я думаю, что они могут быть немного устаревшими.