本文介绍了有条件的热切加载-Laravel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个查询:
$tournament = Tournament::with( 'championships', 'championships.settings', 'championships.category', 'championships.tree.users', )->first();现在,它给了我所有附加冠军的比赛。
Right now, it gives me the tournament with all attached championships.
我需要得到的是锦标赛,但只有与我拥有的$ request-> championshipId相匹配的锦标赛。
What I need is to get the tournament but only with the championship which match the $request->championshipId that I have.
当然,我还希望在所有其他关系( championships.settings, championships.category, championships.tree.users)中使用此过滤器。知道吗?
Off course, I also want this filter in all the other relations ('championships.settings', 'championships.category','championships.tree.users') Any idea?
推荐答案您可以使用 code>约束渴望的加载 像这样:
You can use Constraining Eager Loading like this:
$tournaments = Tournament::with(['championships' => function ($query) { $query->where('something', 'like', '%this%'); }, 'championships.settings' => function ($query) { $query->where('something', 'like', '%this%'); }, ...])->get();希望这会有所帮助!
更多推荐
有条件的热切加载
发布评论