我正在为权限构建中间件。 权限基于用户操作类型和/或模块/元素类型(即删除按钮)。
模型ActionPermission
(表格action_permission
)具有所有权限类型,而表格users__action_permission
是User
& 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
表,或者我是否需要为此建立模型?
答案 0 :(得分:0)
您不需要数据透视表的模型。
用户模型中的添加
public function ActionPermissions() {
return $this->belongsToMany('App\User', 'users_action_permission');
}
在操作权限模型中 添加
public function Users() {
return $this->belongsToMany('App\ActionPermission', 'users_action_permission');
}