如何合并两个Illuminate \ Pagination \ LengthAwarePaginator对象

时间:2018-07-25 07:04:43

标签: php laravel

我正在开发一个名为getScribbles的API。 API响应是数据库中的涂鸦。现在,我需要根据一些标准对涂鸦进行优先排序。但是我也希望那些不在优先列表上的文字。因此,我编写了两个选择查询,一个用于优先级列表,另一个用于普通列表。现在,我需要将这两个结果合并为一个。我为此使用了array_merge()。但这并不能满足我的需求。我需要的结果与前两个结果的类型相同。

我在这里附上我的两个查询。如果我的逻辑不好,我希望你能选一个更好的人。请帮助我解决这个问题。

预先感谢

$prio_scribbles = \DB::table('scribbles') ->join('users', 'scribbles.user_id', '=', 'users.id') ->select('scribbles.id', 'scribbles.title', 'scribbles.content', 'scribbles.color', 'scribbles.frame', 'scribbles.font', 'scribbles.custom_image', 'scribbles.likes', 'scribbles.tags', 'scribbles.pinned_users', 'scribbles.language', 'scribbles.created_at', 'scribbles.updated_at', 'users.id as author_id', 'users.name as author_name', 'users.profile_photo', 'users.scribble_count as no_of_posts') ->whereIn('scribbles.language', $languages) ->orWhereIn('scribbles.user_id', $subscribers) ->orWhereIn('scribbles.id', $data) ->orderBy('created_at', 'desc') ->paginate(25);

$norm_scribbles = \DB::table('scribbles') ->join('users', 'scribbles.user_id', '=', 'users.id') ->select('scribbles.id', 'scribbles.title', 'scribbles.content', 'scribbles.color', 'scribbles.frame', 'scribbles.font', 'scribbles.custom_image', 'scribbles.likes', 'scribbles.tags', 'scribbles.pinned_users', 'scribbles.language', 'scribbles.created_at', 'scribbles.updated_at', 'users.id as author_id', 'users.name as author_name', 'users.profile_photo', 'users.scribble_count as no_of_posts') ->orderBy('created_at', 'desc') ->paginate(25);

0 个答案:

没有答案