#codeigniter #url #pagination
#codeigniter #url #Разбивка на страницы
Вопрос:
Я использую разбивку на страницы CodeIgniter. Я хочу удалить номер страницы из URL или показать номер страницы 1,2,3, а не 5,10,15. Как я могу это сделать, пожалуйста, помогите мне, я новичок в CodeIgniter. Спасибо
Вот мое действие внутри моего контроллера
class Wiki_egypt extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper("url");
$this->load->model('Tours_model');
$this->load->model('Wiki_egypt_model');
$this->load->model('Meta_model');
$this->load->library("pagination");
}
public function Wikipedia_egypt() {
$config = array();
$config["base_url"] = base_url() . "/wikipedia-egypt";
$config["total_rows"] = $this->Wiki_egypt_model->record_count();
$config["per_page"] = 5;
$config["uri_segment"] = 2;
$config['num_links'] = 3;
$this->pagination->initialize($config);
$page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
$data["wikis"] = $this->Wiki_egypt_model->
fetch_departments($config["per_page"], $page);
$data["links"] = $this->pagination->create_links();
$data['meta_tags'] = $this->Meta_model->meta_wikis_eg();
$this->load->view("Header", $data);
$this->load->view("Nav", $data);
$this->load->view("wiki_egypt/wikieg", $data);
$this->load->view("Footer");
}
}
Вот мое действие внутри моей модели
public function record_count() {
return $this->db->count_all("wiki_egypt");
}
public function fetch_departments($limit, $start) {
$this->db->limit($limit, $start);
$query = $this->db->order_by('id', 'DESC')->get("wiki_egypt");
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
Вот мое действие в моем представлении
<?php echo $links; ?>
<?php
foreach($wikis as $row)
{
?>
<?php
} ?>
Ответ №1:
Сначала вам нужна другая конфигурация:
$config['use_page_numbers'] = TRUE;
Затем вам нужно изменить способ работы вашей переменной страницы.
$page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 1;
$page = $config['per_page'] * $page;
Итак, теперь вы говорите, что ваше смещение будет равно странице url, умноженной на смещение.
Все остальное должно работать точно так же.
Комментарии:
1. Спасибо, когда я перехожу со страницы 1 на страницу 2, все в порядке, но когда я перехожу с любой другой страницы, кроме страницы 1, все равно считаю 10, 15, 20 в URL. Это решается только на первой странице.
2. Это странно, возможно, у вас что-то еще изменило вашу нумерацию страниц, потому что в документах указано: $config[‘use_page_numbers’] = TRUE; По умолчанию сегмент URI будет использовать начальный индекс для элементов, которые вы разбиваете на страницы. Если вы предпочитаете показывать фактический номер страницы, установите для этого значение TRUE. Больше информации здесь: codeigniter.com/userguide3/libraries /…