本文介绍了有条件的热切加载-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?
推荐答案
您可以使用像这样:
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();
希望这会有所帮助!
这篇关于有条件的热切加载-Laravel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!