Php 嵌套的HasAngel函数
当前逻辑设置:Php 嵌套的HasAngel函数,php,laravel,laravel-5,eloquent,laravel-5.3,Php,Laravel,Laravel 5,Eloquent,Laravel 5.3,当前逻辑设置: $audits = Room::where('id', $room_id) ->has('objects.scores') ->get(); public function objects() { return $this->hasMany('App\Object'); } public function scores() { return $thi
$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');
}
- 一个房间可以有许多物品李>
- 一个物体可以有很多分数
room\u 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');
}
我发现它返回所有的对象,即使只有几个对象有分数
关系(房间):
$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');
}
关系(对象):
$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');
}
关系(分数):
$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()的好例子
relationship?@camelCase,我已经在描述中添加了对象关系。“dd(Room::where('id',$Room\u id)->has('objects.scores')->toSql();”显示了什么?