首先感谢大家对我的话题感兴趣。我认为这个问题很容易。
我有一个多对多关系在Laravel创建。我的'users'表表示可以登录我的系统的用户。我的'modules'表表示用户登录的模块可以访问。因此,我想验证当前登录的用户是否有权访问所请求的模块。
例如,用户试图访问URL: laravel.com/blog/insert但是用户没有这个模块的权限,所以系统会验证关系并返回用户是否可以继续进入这个页面。我认为这个验证可以在控制器的__construct方法中完成。
我的表:"用户的"模块"answers"users_modules"
我在我的'模块'模型上尝试过这样的东西,但没有成功。$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');
}
我该怎么做呢?谢谢所有帮助我的人!:)
要做到这一点,方法是在app/filters.php
中创建一个自定义路由过滤器,检查用户是否为正在讨论的模块的成员。
看一下这里的文档,特别是关于指定过滤器参数的部分,它应该会让你朝着正确的方向前进。
解决了在Laravel中使用委托的问题。感谢所有帮助过我的人!
委托链接:
https://github.com/Zizaco/entrust