雄辩的所有记录关系

托尼

我正在尝试建立一种替代关系,该关系返回所有记录,而不仅仅是相关记录。我试过返回一个查询构建器,但这不起作用,它必须是一种关系。我应该返回什么来完成这项工作?

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章