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

Laravel分页功能异常求助:点击分页报错且样式失效(Bootstrap4)

解决Laravel + Bootstrap 4分页的两个问题:404错误和样式丢失

嘿,我刚踩过类似的坑,这就帮你拆解解决!你遇到的两个问题都是Laravel分页的常见小故障,咱们一步一步来搞定:

一、点击分页第2页出现NotFoundHttpException的原因和解决

这个错误基本是分页链接丢失搜索参数+路由类型不匹配导致的:

1. 先修正路由类型

如果你的路由定义成了POST,那分页生成的GET链接肯定会找不到对应路由(GET请求不匹配POST路由规则)。赶紧把路由改成GET:

// routes/web.php
Route::get('/searchuser', [YourController::class, 'searchuser'])->name('searchuser');

搜索功能用GET更合理,既能保证分页请求正常,还能让用户收藏搜索链接。

2. 给分页追加搜索参数

Laravel默认分页链接只会携带page参数,你的搜索关键词searchuserr会直接丢失,导致第二页请求没有搜索条件,甚至路由匹配失败。修改控制器里的分页代码,用appends()方法把搜索参数带上:

public function searchuser(Request $req){
    if($req->has('searchuserr')){
        $data = User::where('name','like','%'.$req->input('searchuserr').'%')
            ->select('name','email','status', 'pp', 'gender')
            ->orderBy('name')
            ->paginate(4)
            // 追加所有查询参数(排除page,避免重复)
            ->appends($req->except('page'));
        
        return view('your-view-name', compact('data'));
    }
    // 没有搜索参数时的默认逻辑
    return view('your-view-name', ['data' => collect()]);
}

这样生成的分页链接就会变成?searchuserr=xxx&page=2,不会丢失搜索条件,自然就不会报404了。

二、分页纯数字无Bootstrap样式的解决

Laravel默认用的是Tailwind风格的分页视图,要切换到Bootstrap 4样式有两种简单方法:

方法1:全局配置(一劳永逸)

打开app/Providers/AppServiceProvider.php,在boot()方法里添加一行代码,全局启用Bootstrap分页:

use Illuminate\Pagination\Paginator;

public function boot()
{
    Paginator::useBootstrap();
}

之后所有分页都会自动渲染Bootstrap 4的样式。

方法2:单个视图指定

如果你只想在这个搜索页面用Bootstrap样式,直接在视图里指定分页视图即可:

{{-- 你的搜索结果视图文件 --}}
{{ $data->links('pagination::bootstrap-4') }}

这样就会渲染出带Bootstrap样式的分页按钮,不再是光秃秃的数字了。

最后测试一下:点击第二页参数正常携带,路由能匹配,分页按钮也变成Bootstrap的样式啦!

内容的提问来源于stack exchange,提问作者Kenny Nataniel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:43:08