如何自动将查询字符串附加到laravel分页链接?

 _Cokoice 发布于 2023-01-01 17:34

我正在使用Laravel和Ajax调用复选框点击搜索过滤器.当我点击一个复选框时,我得到了结果.我的查询如下:

    $editors = User::with(['editor.credentials','editor.specialties','editor.ratings']);
        $temp=$editors->whereHas('editor', function($q) use ($a_data){
            $q->whereHas('specialties',function($sq) use($a_data){
            $sq->whereIn('specialty',$a_data);
            });
        })->paginate(2);

这给了我所需的所有数据.但是我应该如何获得分页链接?

    $temp->setBaseUrl('editors');
    $links = $temp->links()->render();

我目前正在做这个和我发送的$ links作为响应ajax调用,我设置了$ link数据的分页.现在,我需要将查询附加到下一页,如page = 2?query ="something".我不知道如何将剩余的查询结果链接附加到下一页链接.即我不知道查询中应该出现什么="某事"部分.有人可以指导我.谢谢

6 个回答
  • {{ $users->appends($_GET)->links() }}
    

    它会将所有查询字符串参数附加到分页链接中

    2023-01-01 17:35 回答
  • 检查@Arda的答案,因为它是全球解决方案.您可以在下面找到如何手动完成的操作.

    appends在Paginator上使用:

    $querystringArray = Input::only(['search','filter','order']); // sensible examples
    
    // or:
    $querystringArray = ['queryVar' => 'something', 'anotherVar' => 'something_else'];
    
    $temp->appends($querystringArray);
    

    2023-01-01 17:35 回答
  • 对于目前最新版本的Laravel(5.2),您可以使用Request facade来检索查询字符串并将其传递给您的paginator的appends()方法

    $input = Request::input();
    $myModelsPaginator = App\Models\MyModel::paginate();
    $myModelsPaginator->appends($input);
    

    2023-01-01 17:37 回答
  • 附加除实际页面,表单标记和您不想传递的内容之外的所有输入:

    $paginatedCollection->appends(request()->except(['page','_token']));
    

    2023-01-01 17:37 回答
  • 在你的应用程序的任何地方添加它(例如routes.php,filters.php或任何自动加载的),无需编辑已经写入的任何分页代码.这可以完美地使用视图编辑器,您不需要知道任何查询字符串参数:

    ////////PAGINATION QUERY STRING APPEND
    View::composer(Paginator::getViewName(), function($view) {
        $queryString = array_except(Input::query(), Paginator::getPageName());
        $view->paginator->appends($queryString);
    });
    //////////////////
    

    2023-01-01 17:37 回答
  • 从先前的答案中得到启发,我最终将服务容器用于前端+ API支持。

    在您的AppServiceProvider@boot()方法中:

    $this->app->resolving(LengthAwarePaginator::class, function ($paginator) {
        return $paginator->appends(array_except(Input::query(), $paginator->getPageName()));
    });
    

    2023-01-01 17:40 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有