【问题标题】:Laravel pagination : add new elementLaravel 分页:添加新元素
【发布时间】: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())。

【问题讨论】:

    标签: php laravel pagination


    【解决方案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é 我已经做了一些测试并更新了答案。这是我目前发现的唯一方法。
    猜你喜欢
    • 2019-04-16
    • 1970-01-01
    • 2020-05-17
    • 2018-07-03
    • 2019-03-17
    • 1970-01-01
    • 2016-02-23
    • 2022-08-18
    • 1970-01-01
    相关资源
    最近更新 更多