【发布时间】:2017-02-13 19:42:51
【问题描述】:
当前逻辑设置:
- 一个房间可以有很多对象。
- 一个对象可以有很多分数。
-- 问题是对象可能有也可能没有任何分数。
场景:
我只想根据我提供的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');
}
如何反向查询?或者正确的方法!我只想要与它们相关联的分数的对象,以及与它们相关的任何东西(房间等)
非常感谢。
【问题讨论】:
-
嵌套关系查询的点表示法看起来不错;我觉得这应该返回正确的结果(只有
Rooms 有一个Object有一个Score。你如何定义Room中的object关系?而且,我想知道这是否可能是使用hasManyThrough()关系的好案例? -
@camelCase,我已经在描述中添加了对象关系。
-
什么是“dd(Room::where('id', $room_id)->has('objects.scores')->toSql());”显示?
标签: php laravel laravel-5 eloquent laravel-5.3