我正在尝试建立一种替代关系,该关系返回所有记录,而不仅仅是相关记录。我试过返回一个查询构建器,但这不起作用,它必须是一种关系。我应该返回什么来完成这项工作?
public function devices()
{
if ($this->admin) {
// return all devices relationship instead
} else {
return $this->belongsToMany('Device', 'permissions');
}
}
小提琴:https : //implode.io/XXLGG8
编辑:在大多数情况下,我想继续构建查询,而不仅仅是获取设备。
我实际上采用了稍微不同的方式并使用了范围:
protected function scopeHasAccess($query, User $user)
{
if ($user->admin) {
return $query;
}
return $query->join('permissions', 'permissions.device_id', "devices.id")
->where('permissions.user_id', $user->user_id);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句