You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter分页链接跳转异常:点击跳至其他控制器而非vehicle

排查CodeIgniter分页跳转错误的思路

嘿,我来帮你捋捋这个分页跳转的问题,大概率是分页配置或者路由的小细节出了问题,咱们一步步排查:

1. 先看分页链接的实际指向

右键点击分页按钮,查看生成的href属性内容。如果链接显示的是yourdomain.com/other_controller/xxx/10,而不是你期望的yourdomain.com/你的控制器名/vehicle/10,那问题根源就很明确了——分页的基础URL没配置正确。

2. 确认分页配置里的base_url是否准确

CodeIgniter的分页类必须明确指定base_url,也就是分页链接要指向的控制器方法路径。你需要在生成分页链接前,把这个配置项设置正确:

// 示例:假设你的控制器叫Vehicle,方法是vehicle,那路径就是控制器名/方法名
$config['base_url'] = site_url('vehicle/vehicle'); 
$config['total_rows'] = $this->vehicle_model->get_total_vehicle_count(); // 替换成你的总数据量查询逻辑
$config['per_page'] = 10; // 每页显示的条数
$this->pagination->initialize($config);

这里一定要注意,site_url()里的路径是控制器名/方法名,别写错了,不然分页链接自然会指向错误的控制器。

3. 检查路由配置是否有干扰

打开application/config/routes.php,看看有没有类似下面的路由重写规则:

$route['vehicle'] = 'other_controller/some_method';

如果存在这样的规则,那访问vehicle路径时会被强制跳转到其他控制器,分页点击后自然就不对了。

4. 带搜索参数的分页要注意参数传递

你的代码里用到了$searchText = $this->input->post('searchText'),如果是搜索后的分页,POST参数在页面跳转时会丢失,所以需要把搜索参数加到分页链接里:

// 兼容POST和GET方式获取搜索参数
$searchText = $this->input->post('searchText') ?: $this->input->get('searchText');
// 把搜索参数拼接到base_url里
$config['base_url'] = site_url('你的控制器名/vehicle') . '?searchText=' . urlencode($searchText);

这样分页跳转时才会带上搜索条件,也不会因为参数丢失导致路由走了其他逻辑。

5. 确认uri_segment配置是否正确

如果你的vehicle方法还有其他URI参数(比如你的控制器名/vehicle/car/1),那需要调整$config['uri_segment']的值,让分页类知道哪一段是页码:

// 比如页码在URI的第4段,就设置为4
$config['uri_segment'] = 4;

如果这个值设错了,CodeIgniter解析URI时会出错,可能导致跳转到错误的控制器方法。

先按这几步排查,应该能快速定位到问题~

内容的提问来源于stack exchange,提问作者Nadeem Ijaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:13:00