Php codeigniter中的分页URL问题
我在我的站点中添加了分页,它似乎可以很好地显示每页的结果,但在单击“下一页”后,显示错误为“未找到页面” 基本url也是正确的。在模型中,还有一个过滤器代码。单击第二页后,错误显示为404页未找到 启动控制器代码:Php codeigniter中的分页URL问题,php,mysql,codeigniter,pagination,Php,Mysql,Codeigniter,Pagination,我在我的站点中添加了分页,它似乎可以很好地显示每页的结果,但在单击“下一页”后,显示错误为“未找到页面” 基本url也是正确的。在模型中,还有一个过滤器代码。单击第二页后,错误显示为404页未找到 启动控制器代码: public function index() { $this->load->library('pagination'); $config = array(); $total_rows = count($this->{$this->mo
public function index()
{
$this->load->library('pagination');
$config = array();
$total_rows = count($this->{$this->model_name}->get($config));
$config['base_url'] = base_url('deals');
$config['uri_segment'] = 3;
$config['total_rows'] = $total_rows;
$config['per_page'] = 8;
$per_page = $config['per_page'];
$offset = $config['per_page'];
$config['num_links'] = 3;
$config['full_tag_open'] = '<ul class="pagination ">';
$config['full_tag_close'] = '</ul>';
$config['first_tag_open'] = '<li class=" page-item page-link">';
$config['first_tag_close'] = '</li>';
$config['last_tag_open'] = '<li class=" page-item page-link">';
$config['last_tag_close'] = '</li>';
$config['next_link'] = 'Next';
$config['next_tag_open'] = '<li class="page-item page-link">';
$config['next_tag_close'] = '</li>';
$config['prev_link'] = 'Prev';
$config['prev_tag_open'] = '<li class=" page-item page-link">';
$config['prev_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class=" page-item page-link active"><a
href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li class=" page-item page-link">';
$config['num_tag_close'] = '</li>';
$this->pagination->initialize($config);
$this->data['pagination'] = $this->pagination->create_links();
$segment = (($this->uri->segment(3)) ? $this->uri->segment(3):0);
/*---Pagination script ends here----*/
$this->data['deals'] = $this->deals_model->get($filters,
$sort_filters,8,$segment);
}
public function get($filters = [], $sort_filters = [], $limit = 0, $offset = 0, $sort_filters_mobile = [])
{
$this->db-
>select('deals.*,deals.expiry_date_time,categories.category_name,categories.seo_url as category_seo_url,sub_categories.sub_category_name,sub_categories.seo_url as sub_category_seo_url,stores.store_name,stores.is_direct_link');
$this->db->from('deals');
$this->db->join('categories', 'categories.id=deals.categories_id');
$this->db->join('sub_categories',
'sub_categories.id=deals.sub_categories_id');
$this->db->join('stores', 'stores.id=deals.stores_id');
$this->db->where("deals.status", 1);
$this->db->where("stores.current_status", 'Active');
foreach ($filters as $key => $value)
{
if (is_array($value))
{
if ($key == 'deals.tags') {
$cond = array();
foreach ($value as $key => $val) {
$cond[] = 'FIND_IN_SET("' . $val . '",deals.tags) != 0';
}
$this->db->where('(' . implode(' OR ', $cond) . ')');
}
else
{
$key_array = explode(' ', $key);
if (isset($key_array[1]) && ($key_array[1] == "!="))
{
$this->db->where_not_in($key_array[0], $value);
}
else
{
$this->db->where_in($key, $value);
}
}
}
elseif ($key == 'deals.deal_title')
{
$this->db->like($key, $value);
}elseif ($key == 'deals.tags') {
$this->db->where('FIND_IN_SET("' . $value . '",deals.tags) !=', 0);
} else {
$this->db->where($key, $value);
}
}
foreach ($sort_filters as $key => $value)
{
$this->db->order_by($key, $value);
}
if ($limit != 0)
{
if ($offset != 0) {
$this->db->limit($limit, ($offset * $limit));
} else {
$this->db->limit($limit);
}
}
$data = $this->db->get()->result();
if ($data)
{
foreach ($data as $item)
{
if ($item->current_status == 'Active') {
$item->current_status_bootstrap_class = 'primary';
} else {
$item->current_status_bootstrap_class = 'danger';
}
if ($item->deal_type == 'DEAL') {
$item->deal_type_bootstrap_class = 'primary';
$item->deal_type_text = 'Deal';
} else {
$item->deal_type_bootstrap_class = 'success';
$item->deal_type_text = 'Offer & Coupon';
}
$item->image = FILE_UPLOADED_PATH . $item->image;
}
return $data;
}
return [];
}
<div class="row">
<div class="col-md-12">
<div class="text-center">
<?= $pagination ?>
</div>
</div>
</div>
开始查看代码:
public function index()
{
$this->load->library('pagination');
$config = array();
$total_rows = count($this->{$this->model_name}->get($config));
$config['base_url'] = base_url('deals');
$config['uri_segment'] = 3;
$config['total_rows'] = $total_rows;
$config['per_page'] = 8;
$per_page = $config['per_page'];
$offset = $config['per_page'];
$config['num_links'] = 3;
$config['full_tag_open'] = '<ul class="pagination ">';
$config['full_tag_close'] = '</ul>';
$config['first_tag_open'] = '<li class=" page-item page-link">';
$config['first_tag_close'] = '</li>';
$config['last_tag_open'] = '<li class=" page-item page-link">';
$config['last_tag_close'] = '</li>';
$config['next_link'] = 'Next';
$config['next_tag_open'] = '<li class="page-item page-link">';
$config['next_tag_close'] = '</li>';
$config['prev_link'] = 'Prev';
$config['prev_tag_open'] = '<li class=" page-item page-link">';
$config['prev_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class=" page-item page-link active"><a
href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li class=" page-item page-link">';
$config['num_tag_close'] = '</li>';
$this->pagination->initialize($config);
$this->data['pagination'] = $this->pagination->create_links();
$segment = (($this->uri->segment(3)) ? $this->uri->segment(3):0);
/*---Pagination script ends here----*/
$this->data['deals'] = $this->deals_model->get($filters,
$sort_filters,8,$segment);
}
public function get($filters = [], $sort_filters = [], $limit = 0, $offset = 0, $sort_filters_mobile = [])
{
$this->db-
>select('deals.*,deals.expiry_date_time,categories.category_name,categories.seo_url as category_seo_url,sub_categories.sub_category_name,sub_categories.seo_url as sub_category_seo_url,stores.store_name,stores.is_direct_link');
$this->db->from('deals');
$this->db->join('categories', 'categories.id=deals.categories_id');
$this->db->join('sub_categories',
'sub_categories.id=deals.sub_categories_id');
$this->db->join('stores', 'stores.id=deals.stores_id');
$this->db->where("deals.status", 1);
$this->db->where("stores.current_status", 'Active');
foreach ($filters as $key => $value)
{
if (is_array($value))
{
if ($key == 'deals.tags') {
$cond = array();
foreach ($value as $key => $val) {
$cond[] = 'FIND_IN_SET("' . $val . '",deals.tags) != 0';
}
$this->db->where('(' . implode(' OR ', $cond) . ')');
}
else
{
$key_array = explode(' ', $key);
if (isset($key_array[1]) && ($key_array[1] == "!="))
{
$this->db->where_not_in($key_array[0], $value);
}
else
{
$this->db->where_in($key, $value);
}
}
}
elseif ($key == 'deals.deal_title')
{
$this->db->like($key, $value);
}elseif ($key == 'deals.tags') {
$this->db->where('FIND_IN_SET("' . $value . '",deals.tags) !=', 0);
} else {
$this->db->where($key, $value);
}
}
foreach ($sort_filters as $key => $value)
{
$this->db->order_by($key, $value);
}
if ($limit != 0)
{
if ($offset != 0) {
$this->db->limit($limit, ($offset * $limit));
} else {
$this->db->limit($limit);
}
}
$data = $this->db->get()->result();
if ($data)
{
foreach ($data as $item)
{
if ($item->current_status == 'Active') {
$item->current_status_bootstrap_class = 'primary';
} else {
$item->current_status_bootstrap_class = 'danger';
}
if ($item->deal_type == 'DEAL') {
$item->deal_type_bootstrap_class = 'primary';
$item->deal_type_text = 'Deal';
} else {
$item->deal_type_bootstrap_class = 'success';
$item->deal_type_text = 'Offer & Coupon';
}
$item->image = FILE_UPLOADED_PATH . $item->image;
}
return $data;
}
return [];
}
<div class="row">
<div class="col-md-12">
<div class="text-center">
<?= $pagination ?>
</div>
</div>
</div>