繁体   English   中英

具有分页结果的搜索方法

[英]Search Method with pagination result

我用一些过滤器制作了一个搜索方法(GET),我遇到的唯一问题是当我运行搜索结果时,我得到的地址与分页地址类似:

搜索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'));

    }

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

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

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

https://laravel.com/docs/5.4/pagination#displaying-pagination-results上检查“附加到分页链接”以获取信息

您可以通过以下方式自定义分页网址

$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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM