Laravel有很多不归还的收藏品

时间:2018-05-17 07:54:48

标签: php laravel eloquent

我正在为权限构建中间件。 权限基于用户操作类型和/或模块/元素类型(即删除按钮)。

模型ActionPermission(表格action_permission)具有所有权限类型,而表格users__action_permissionUser& ActionPermission包含所有用户及其权限ID。

User

permissions()方法,可获取用户的所有权限

public function permissions()
{
    return $this->hasMany('App\ActionPermission');
}

checkUserPermissions(中间件)

public function handle($request, Closure $next)
{
        $response = $next($request);
        $userId = Auth::id();
        $userPermissions = User::findOrFail($userId)->permissions()->get();
        dd($userPermissions);
}

由于permissions()正在寻找user_id密钥,而ActionPermission模型(表action_permission)没有相关的user_id密钥,我需要该表users__action_permission持有user_id。{/ p>

我的问题是,Laravel是否有办法让User::permissions()访问users__action_permission表,或者我是否需要为此建立模型?

1 个答案:

答案 0 :(得分:0)

您不需要数据透视表的模型。

用户模型中的

添加

public function ActionPermissions() {
    return $this->belongsToMany('App\User', 'users_action_permission');
}

在操作权限模型中 添加

public function Users() {
    return $this->belongsToMany('App\ActionPermission', 'users_action_permission');
}