2
当前逻辑设置:嵌套的hasMany预先加载Laravel功能
- 一个房间可以有很多的对象。
- 一个对象可以有很多分数。
- 问题是对象可能没有任何分数。
情景: 我想要检索基础上,room_id
我提供了有一些只对象。
尝试:
$audits = Room::where('id', $room_id)
->has('objects.scores')
->get();
什么我的发现是,它返回的所有对象,即使只有一对夫妇的对象实际上有一个分数。
关系(房间):
public function objects()
{
return $this->hasMany('App\Object');
}
关系(对象):
public function scores()
{
return $this->hasMany('App\Scores');
}
关系(分数):
public function object()
{
return $this->belongsTo('App\Object');
}
我如何查询相反?或者正确的方法!我只想要有与他们相关的分数的对象,并因此与它们相关的任何东西(房间等)。
非常感谢。
您的嵌套关系查询点符号看起来不错;我觉得这应该返回正确的结果(只有'房间''有一个'对象'有一个'分数'。你如何定义'房间'中的'对象'关系?还有,我想知道这是否可能是使用'hasManyThrough()'关系的一个好例子? – camelCase
@camelCase,我已经添加了对象关系到描述。 – Ben
什么是“dd(Room :: where('id',$ room_id) - > has(' objects.scores') - > toSql());“show? –