with里面添加where怎么写

$bank_list = $query
            ->where('user_id', \Auth::user()->id)
            ->OrderBy('created_at','desc')
            ->with('settle_ment_way')
            ->get();

我想在with的条件里,再添加where('status', 1)要怎么写呢?

我现在在前端v-if了一下,后端怎么写呢

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6

不知道你是想要达到什么目的,正常要过滤应核使用:whereHas .
当然with也可以过滤,一般是一对多的情况一下做统计才用得到吧,
with写法:

with(['settle_ment_way' => function ($q) {
                $q->where('status', 1);
            }])

这个会输出所有列表,只是settle_ment_way字段参数只有settle_ment_way表的status=1才会输出值,否则就是null

whereHas写法:

->whereHas('settle_ment_way', function ($q) {
                $q->where('status', 1);
            })

这个是列表中只返回settle_ment_way表中status等于1的数据,一般用这个比较多。

1年前 评论
wongvio (楼主) 1年前
xini2603 (作者) 1年前
wongvio (楼主) 1年前

用闭包函数就可以加了,第二种where条件固定的就在model里面连表处写

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!