首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果连接数据库中的3个查询,Laravel调用数组上的成员函数分页()

如果连接数据库中的3个查询,Laravel调用数组上的成员函数分页()
EN

Stack Overflow用户
提问于 2022-07-20 18:55:24
回答 1查看 44关注 0票数 1

找到如何从数据库连接3个查询的解决方案。但我无法尝试对我的代码中的信息进行分页:

代码语言:javascript
复制
$ads_default = AdModel::where('status','=', 1)->where('category_id','=',$this_category_id)->where('moderation','=', 0)->where('ad_diamond','=', 0)->where('ad_vip','=', 0)->orderBY('ad_pos', 'asc')->get();
    $ads_vip = AdModel::where('status','=', 1)->where('category_id','=',$this_category_id)->where('moderation','=', 0)->where('ad_vip','=', 1)->orderBY('ad_vip_pos', 'asc')->get();
    $ads_diamond = AdModel::where('status','=', 1)->where('category_id','=',$this_category_id)->where('moderation','=', 0)->where('ad_diamond','=', 1)->orderBY('ad_diamond_pos', 'asc')->get();
    $merge_d_v = $ads_diamond->merge($ads_vip);
    $merge_d_v_r = $merge_d_v->merge($ads_default);
    $data['all_union_ads'] = $merge_d_v_r->all()->paginate(20);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-20 19:05:06

不能在集合上调用分页,在查询上调用get()之后,它将解析查询。这可以是一些简单的orWhere()逻辑。

注意带有闭包的逻辑分组,以避免它是category_id = 1 AND ad_vip = 1,而不是类似于category_id = 1 AND (one_condition OR another condition)

代码语言:javascript
复制
AdModel::where('status', 1)
    ->where('category_id', $this_category_id)
    ->where('moderation','=', 0)
    ->where(function ($query) {
        $query->orWhere(function ($query) {
            $query->where('ad_diamond','=', 0)
                ->where('ad_vip','=', 0)->orderBY('ad_pos', 'asc');
        })->orWhere('ad_vip','=', 1)
        ->orWhere('ad_diamond','=', 1);
    })->paginate();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73056847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档