Laravel 分页:添加新元素

Posted

技术标签:

【中文标题】Laravel 分页:添加新元素【英文标题】:Laravel pagination : add new element 【发布时间】:2018-07-20 04:53:06 【问题描述】:

我尝试使用 laravel 在分页列表中添加特定元素。

在网址中,有一个参数可以查看我的列表中的特定用户(参数是用户的id)。我得到这样的参数:

$openUserId = \Input::get('user', null);

之后,我得到了一个分页用户列表,如下所示:

$users = User::filter($filter)
        ->with('company')
        ->isNot(Role::ADMIN)
        ->whereNotIn('id', [auth()->user()->id])
        ->where('status', 'active')
        ->paginate(10)
        ->appends($request->except('page'));

我想在前 10 个结果中添加 url 中的用户创建我的用户列表,因为有时所需的用户不在前 10 个用户中。

我无法创建集合或类似的东西,因为我需要保留分页功能(例如 nextPageUrl() 或 hasMorePages())。

【问题讨论】:

【参考方案1】:

您需要通过两个查询来获取这些用户,合并集合并使用合并的集合create LengthAwarePaginator paginator manually:

$users = User::with('company')->take(1)->get();

$usersToMerge = User::filter($filter)
    ->with('company')
    ->isNot(Role::ADMIN)
    ->where('id', '!=', auth()-id())
    ->where('status', 'active')
    ->take(9)
    ->get();

$users->merge($usersToMerge);

【讨论】:

您好,谢谢您的回答!不幸的是,它并没有更好地工作。例如,我的 id 为 42 的用户未被选中,因为之前选择了前 10 个用户。我试图颠倒两个“where”条件,这并不好:/ 我试过了,也没有用...我的用户没有在前 10 个结果中被选中。 :// @MarjolaineVé 我已经做了一些测试并更新了答案。这是我目前发现的唯一方法。

以上是关于Laravel 分页:添加新元素的主要内容,如果未能解决你的问题,请参考以下文章

laravel 5.2 分页链接中添加随机字符

在 laravel 分页中添加一些数据

laravel5.5中添加对分页样式的修改上一页和下一页

Laravel 5 - 手动分页

与 Laravel 分页一起使用的表格搜索

Laravel 多页分页