具有分页结果的搜索方法

时间:2017-05-03 07:38:18

标签: laravel

我用一些过滤器制作了一个搜索方法(GET),我唯一的问题就是当我运行搜索结果时,我得到的结果与adresse相似:

  

搜索Q =&安培; type_licence_id =安培; activite_licence_id =安培; structure_id = 8

当我点击第2页时,我有:

  

搜索?页= 2

所以它再次显示搜索查询的结果。

也许我在控制器上做错了什么?希望有人可以帮助我,非常感谢提前

这是我的控制器:

public function search(Request $request)
    {

        $structure = Structure::select('num_structure', 'nom_structure' , 'id')

            ->get()
            ->mapWithKeys(function($i) {
                return [$i->id => $i->num_structure.' - '.$i->nom_structure];
            });

        $activite = ActiviteLicencie::pluck('lb_activite' , 'id');
        $type_licence = Type_licence::pluck('lb_type' , 'id');

        $query = Licencies::query();

        $filters = [
            'type_licence_id' => 'type_licence_id',
            'activite_licence_id' => 'activite_licencie_id',
            'structure_id' => 'structure_id',

        ];

        foreach ($filters as $key => $column) {
            $query->when($request->{$key}, function ($query, $value) use ($column) {
                $query->where($column, $value);
            });

        }

        $licencies = $query->paginate(10);

        return view('licencie/recherche', compact('licencies' , 'structure' , 'activite' , 'type_licence'));

    }

2 个答案:

答案 0 :(得分:2)

我在我的刀片模板中使用以下内容:

{{ $licencies->appends(Request::all())->links() }}

它将所有请求参数附加到分页。

检查'附加分页链接'在https://laravel.com/docs/5.4/pagination#displaying-pagination-results获取信息

答案 1 :(得分:0)

您可以通过

自定义分页网址
$licencies = $query->paginate(10);

$licencies->setPath($request->fullUrlWithQuery());

文档:

https://laravel.com/docs/5.4/pagination#displaying-pagination-results

https://laravel.com/api/5.4/Illuminate/Pagination/LengthAwarePaginator.html#method_setPath