我正在开发一个名为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);