Начальная страница нумерации страниц в codeigniter не может показать другую страницу
Я пытаюсь сделать нумерацию страниц с помощью начальной загрузки в codeigniter. Пагинация шоу на мой взгляд. Но когда я хочу перейти на другую страницу, я получаю страницу 404 не найденную Запрошенная вами страница не найдена. В чем дело?
Это мой контроллер
public function shop($page = 'shop', $offset = 0) {
$data['title'] = ucfirst($page);
// breadcrumb start
$breadcrumb = array(
"Beranda" => "index",
"Belanja Sekarang" => "",
);
$data['breadcrumb'] = $breadcrumb;
// breadcrumb end
// pagination start
$jml = $this->db->get('produk');
$num_rows = $this->db->count_all("produk");
$config['base_url'] = base_url() . "page/shop";
$config['total_rows'] = $num_rows;
$config['per_page'] = 9;
$config['uri_segment'] = 2;
$this->pagination->initialize($config);
$data['pagination'] = $this->pagination->create_links();
$data['offset'] = $offset;
$page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
$offset = $page == 0 ? 0 : ($page - 1) * $config["per_page"];
// memanggil method di model
$data['produk'] = $this->cart_model->retrieve_products($config['per_page'], $page);
$this->load->view('user/templates/header', $data);
$this->load->view('user/templates/navigation', $data);
$this->load->view('user/pages/' . $page, $data);
$this->load->view('user/templates/footer', $data);
}
это моя модель
class Cart_model extends CI_Model {
// Our Cart_model class extends the Model class
// Function to retrieve an array with all product information
function retrieve_products($num, $offset) {
$query = $this->db->get('produk', $num, $offset); // Select the table products
return $query->result_array(); // Return the results in a array.
}
}
2 ответа
в контроллере
$config['base_url'] = base_url() . "page/shop";
$config['total_rows'] = $num_rows;
$config['per_page'] = 9;
$config['uri_segment'] = 2;
$limit = $config['per_page'];
// boostrap Pagination. Just import boostrap. This will take CSS code automatically
$config['full_tag_open'] = '<ul class="pagination">';
$config['full_tag_close'] = '</ul>';
$config['first_link'] = false;
$config['last_link'] = false;
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['prev_link'] = '«';
$config['prev_tag_open'] = '<li class="prev">';
$config['prev_tag_close'] = '</li>';
$config['next_link'] = '»';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="active"><a href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$this->pagination->initialize($config);
$page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
$data['links'] = $this->pagination->create_links();
$data['produk'] = $this->cart_model->retrieve_products($limit, $page);
$this->load->view('user/templates/header', $data);
$this->load->view('user/templates/navigation', $data);
$this->load->view('user/pages'. $data);
$this->load->view('user/templates/footer', $data);
в модели
class Cart_model extends CI_Model
{
public function retrieve_products($limit , $page)
{
$query = $this->db->query("SELECT * FROM produk LIMIT $page,$limit ");
$result = $query->result_array();
return $result;
}
}
ввиду
foreach ( $produk as $new_produk )
{
//This should be your data base fields
echo $new_produk['database field1'];
echo $new_produk['database field2'];
}
конец основного div просто повторяю ссылку (нумерация страниц в стиле boostrap)
<?$php
echo $links;//This create your pagination.
?>
Это было неправильно по URL:
Вот URL: http://localhost/sjpro/page/shop&=9
true: http://localhost/sjpro/page/shop/9
из функции
public function shop($page = 'shop', $offset = 0)