【问题标题】:Second page of paginate won't display the filtered data分页的第二页不会显示过滤后的数据
【发布时间】:2022-01-04 08:23:29
【问题描述】:

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

在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=&amp;pJobDescription=Full+Stack+Developer&amp;pUnitKerja=All&amp;pDirectorate=All&amp;pRank=All&amp;export=Filter

进入

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

额外说明,分页正在工作,但是当您想查看第二页时却无法正常工作,因为它以某种方式重置了输入过滤器

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

【问题讨论】:

    标签: laravel pagination laravel-pagination


    【解决方案1】:
    $data->paginate(15)->withQueryString();
    

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

    【讨论】:

    • 像魅力一样工作,谢谢
    【解决方案2】:

    另一种解决方案正在替换

         {{ $data->links() }}
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多