分页的第二页不会显示过滤后的数据

Second page of paginate won't display the filtered data

我想在 laravel 中使用分页,但效果不佳。当我对过滤后的数据进行分页时,它工作正常,但只有第一个 page.The 问题是当我移至第二页时,它将显示所有数据的第二页而不是过滤后的数据。我想要它,所以第二页将显示过滤数据的第二页

在 blade.php 我正在使用链接调用分页(用于移动页面)

<div class="paginate">
     {{ $data->links() }}
</div>

这是过滤器控制器

function filter(Request $request){
        $data = profiles::when($request->has('pNamaLengkap'), function($query) use ($request){
            $query->where('pNamaLengkap','like','%'.$request->pNamaLengkap.'%');
        });
        if($request->pJobDescription != 'All'){
            $data = $data->where('pJobDescription','like','%'.$request->pJobDescription.'%');
        }
        if($request->pUnitKerja != 'All'){
            $data = $data->where('pUnitKerja','like','%'.$request->pUnitKerja.'%');
        }
        if($request->pDirectorate != 'All'){
            $data = $data->where('pDirectorate','like','%'.$request->pDirectorate.'%');
        }
        if($request->pRank != 'All'){
            $data = $data->where('pRank','like','%'.$request->pRank.'%');
        }

        return view('export', [
            'data' => $data->paginate(5),
            'jobdescription' => jobdes::all(),
            'unitkerja' => unitkerja::all(),
            'direktorat' => direktorat::all(),
            'rank' => rank::all(),
            'oldjob' => $request->pJobDescription,
            'oldunit' => $request->pUnitKerja,
            'olddir' => $request->pDirectorate,
            'oldrank' => $request->pRank,
            'oldname' => $request->pNamaLengkap
        ]);

        // return redirect('export')->with([
        //     'data' => $data,
        //     'jobdescription' => jobdes::all(),
        //     'unitkerja' => unitkerja::all(),
        //     'direktorat' => direktorat::all()
        // ]);
    }

我以图为例

Filtered JobDescription Page 1

Page 2 that reset the filter and display all data

在 URL 参数中将其从

更改为

http://127.0.0.1:8000/filterexport?pNamaLengkap=&pJobDescription=Full+Stack+Developer&pUnitKerja=All&pDirectorate=All&pRank=All&export=Filter

进入

http://127.0.0.1:8000/filterexport?page=2

另外请注意,分页功能可以正常工作,但当您想查看第二页时却无法正常工作,因为它以某种方式重置了输入过滤器

感谢您阅读此页,我真的需要这方面的帮助

$data->paginate(15)->withQueryString();

对分页数据使用 withQueryStrings() 方法。

另一个解决方案正在替换

     {{ $data->links() }}

 {{ $data->appends(Request::except('page'))->links() }}