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了一下,后端怎么写呢

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 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的数据,一般用这个比较多。

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

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

2年前 评论

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