如何为Laravel paginate分页链接的查询字符串添加GET参数?
Laravel分页URL追加GET参数失效解决方案
错误原因
你当前的写法存在两个核心问题:
- Laravel分页实例不会自动读取你自定义的
pagenate_params变量,必须手动调用appends()方法绑定查询参数到分页实例 - Blade模板中硬写死了
year的值为2022,没有读取请求传入的动态参数
修正方案
方案一:控制器端绑定参数(更推荐,模板维护成本更低)
直接在控制器中将参数追加到分页实例,模板无需额外处理:
public function list(Request $request) { // 读取请求中的year参数,可指定默认值避免为空 $year = $request->input('year', ''); $companies = Company::orderBy('id', 'DESC')->paginate(15); // 绑定参数到分页实例 $companies->appends(['year' => $year]); return view('list', [ 'companies' => $companies, 'year' => $year ]); }
对应Blade模板分页部分直接调用即可:
{{ $companies->links() }}
方案二:模板端绑定参数
如果需要在视图层处理参数绑定,动态读取传入的year值即可:
{{ $companies->appends(['year' => $year])->links() }}
其他注意事项
你当前Blade模板中的列表链接存在语法错误,缺少标签闭合标记,修正后写法:
@foreach ($companies as $company) <a href="{{ route('next',['id' => $company->id ,'year' => $year])}}">{{$year}}</a> @endforeach
内容的提问来源于stack exchange,提问作者flow Stack
相关产品推荐
相关产品推荐

