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 分页:添加新元素的主要内容,如果未能解决你的问题,请参考以下文章