首先感谢对我的主题感兴趣。我认为这个问题很容易。
我在Laravel中创建了多对多关系。我的'用户'表代表可以在我的系统中登录的用户。 我的'模块'表表示用户登录的模块可以访问。所以,我想验证当前登录用户是否可以访问所请求的模块。
例如,用户尝试访问URL:laravel.com/blog/insert 但是用户没有此模块的权限,因此系统会验证关系并返回用户是否可以继续访问此页面。我认为这个验证可以在控制器的__construct方法中完成。
我的表:'用户','模块'和'用户_模块'
我在'模块'模型上尝试了类似的功能,但没有成功。 $ id表示模块ID:
public static function getUser($id)
{
$module = Modules::where('id', '=', $id)->first();
return $module->users;
}
我的用户模型关系:
public function modules()
{
return $this->belongsToMany('Modules', 'users_modules', 'user_id', 'module_id');
}
我的模块关系:
public function users()
{
return $this->belongsToMany('User', 'users_modules', 'module_id', 'user_id');
}
我该怎么做?谢谢所有帮助我的人! :)
答案 0 :(得分:0)
执行此操作的方法是在app/filters.php
中创建自定义路由过滤器,以检查用户是否是相关模块的成员。
查看文档here,特别是有关指定过滤器参数的部分,这应该会让您朝着正确的方向前进。
答案 1 :(得分:0)