如何从 Codeigniter 中的 URL 中删除“&per_page=”
Posted
技术标签:
【中文标题】如何从 Codeigniter 中的 URL 中删除“&per_page=”【英文标题】:How to remove "&per_page=" from URL in Codeigniter 【发布时间】:2018-05-30 10:26:34 【问题描述】:我被这个问题困住了。我在我的网址上遇到了这个问题。我的网址中收到了&per_page=
。
我在 CI 中使用分页,其中我使用了以下代码但无法删除它。
我的网址:http://localhost/abroad_education/entrance/index/0&per_page=3
预期网址:http://localhost/abroad_education/entrance/index/0/3
控制器
class Entrance extends CI_Controller
public function __construct()
parent::__construct();
$this->load->helper('url');
$this->load->helper('form');
$this->load->model('Pagination_model',"pgn");
public function index()
if($this->input->post('title') !="")
$title = trim($this->input->post('title'));
else
$title = str_replace("%20",' ',($this->uri->segment(3))?$this->uri->segment(3):0);
$data['search_title']=$title;
print_r($title);
$allrecord = $this->pgn->allrecord($title);
$baseurl = base_url().$this->router->class.'/'.$this->router->method."/".$title;
$paging=array();
$paging['base_url'] =$baseurl;
$paging['total_rows'] = $allrecord;
$paging['per_page'] = 3;
$paging['uri_segment']= 4;
$paging['num_links'] = 8;
$paging['first_link'] = 'First';
$paging['first_tag_open'] = '<li>>';
$paging['first_tag_close'] = '</li>';
$paging['num_tag_open'] = '<li>';
$paging['num_tag_close'] = '</li>';
$paging['prev_link'] = 'Prev';
$paging['prev_tag_open'] = '<li>';
$paging['prev_tag_close'] = '</li>';
$paging['next_link'] = 'Next';
$paging['next_tag_open'] = '<li>';
$paging['next_tag_close'] = '</li>';
$paging['last_link'] = 'Last';
$paging['last_tag_open'] = '<li>';
$paging['last_tag_close'] = '</li>';
$paging['cur_tag_open'] = '<li class="active"><a href="javascript:void(0);">';
$paging['cur_tag_close'] = '</a></li>';
$this->pagination->initialize($paging);
$data['limit'] = $paging['per_page'];
$data['number_page'] = $paging['per_page'];
$data['offset'] = ($this->uri->segment(4)) ? $this->uri->segment(4):'0/';
$data['nav'] = $this->pagination->create_links();
$data['datas'] = $this->pgn->data_list($data['limit'],$data['offset'],$title);
$data['include'] = 'frontend/entrance/entrance';
$this->load->view('frontend/container', $data);
型号
class Pagination_model extends CI_Model
function __construct()
parent::__construct();
$this->load->library(array('session','pagination'));
$this->load->helper('url');
$this->load->database();
public function allrecord($title)
if(!empty($title))
$this->db->like('ee_name',$title);
$this->db->select('*');
$this->db->from('vm_entrance_exams');
$rs = $this->db->get();
return $rs->num_rows();
public function data_list($limit,$offset,$title)
if(!empty($title))
$this->db->like('ee_name',$title);
$this->db->select('*');
$this->db->from('vm_entrance_exams');
$this->db->order_by('ee_id','ee_desc');
$this->db->limit($limit,$offset);
$rs = $this->db->get();
return $rs->result_array();
【问题讨论】:
我经常使用分页,但默认情况下从来没有出现过这个问题。可能是因为这个$baseurl = base_url().$this->router->class.'/'.$this->router->method."/".$title;
我会像这样$config['base_url'] = base_url() . 'product/productBrand/'.$id;
做分页基本网址。 Cz 我知道它的实际 URL,而不是像 $this->router->method
这样的魔术方法
@AbdullaNilam。我什至尝试了相同的“&per_page =”重复..而不是这个我只需要'/'..只有这样我的代码才能工作。
@AbdullaNilam .. 谢谢你先生.. 我得到了解决方案..
【参考方案1】:
检查您是否在 /application/config.php 中将“enable_query_strings”设置为 false
$config['enable_query_strings'] = FALSE;
来自docs。
如果您将 $config['enable_query_strings'] 设置为 TRUE 您的链接 将使用查询字符串自动重写。这个选项可以 也可以显式设置。
【讨论】:
以上是关于如何从 Codeigniter 中的 URL 中删除“&per_page=”的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Codeigniter 4 中的 url 中删除 public/index.php/
如何从 CodeIgniter 中的 URL 中删除控制器和函数名称
如何从 Codeigniter 中的 URL 中删除“&per_page=”