我觉得可能是你的理解有误,这个update方法并不能控制访问其他人的编辑页面,update是在编辑页面进行提交的时候才会触发的,如果你想要控制用户不能进入其他人的编辑页,那就应该在UserPolicy增加一个控制访问权限的方法,默认的应该是view方法,在这个方法里面验证用户是否有权限访问,然后在控制器的edit方法里面调用$this->authorize('view',$user),这样用户就没有权限访问其他人的编辑页面。
至于你说的IDE报错是因为authorize方法会抛出UnauthorizedException的异常,你没有去捕获和处理这个异常,所以编辑器提示了。因为框架有全局的错误处理,所以这个忽略就好,如果你觉得看着不舒服,可以在加个Doc,告诉编辑器update方法会抛出这个异常就可以了。
还有楼上说的auth middleware和这个问题没有关系,auth是用来用户认证的,和授权没有关系
我觉得可能是你的理解有误,这个update方法并不能控制访问其他人的编辑页面,update是在编辑页面进行提交的时候才会触发的,如果你想要控制用户不能进入其他人的编辑页,那就应该在UserPolicy增加一个控制访问权限的方法,默认的应该是view方法,在这个方法里面验证用户是否有权限访问,然后在控制器的edit方法里面调用$this->authorize('view',$user),这样用户就没有权限访问其他人的编辑页面。
至于你说的IDE报错是因为authorize方法会抛出UnauthorizedException的异常,你没有去捕获和处理这个异常,所以编辑器提示了。因为框架有全局的错误处理,所以这个忽略就好,如果你觉得看着不舒服,可以在加个Doc,告诉编辑器update方法会抛出这个异常就可以了。
还有楼上说的auth middleware和这个问题没有关系,auth是用来用户认证的,和授权没有关系
你需要在 UsersController.php中使用添加
public function __construct()
{
$this->middleware('auth',[
'expect' => ['show','create','store']
]);
}
来在初始化UsersController这个类的时候进行授权
我觉得可能是你的理解有误,这个update方法并不能控制访问其他人的编辑页面,update是在编辑页面进行提交的时候才会触发的,如果你想要控制用户不能进入其他人的编辑页,那就应该在UserPolicy增加一个控制访问权限的方法,默认的应该是view方法,在这个方法里面验证用户是否有权限访问,然后在控制器的edit方法里面调用$this->authorize('view',$user),这样用户就没有权限访问其他人的编辑页面。
至于你说的IDE报错是因为authorize方法会抛出UnauthorizedException的异常,你没有去捕获和处理这个异常,所以编辑器提示了。因为框架有全局的错误处理,所以这个忽略就好,如果你觉得看着不舒服,可以在加个Doc,告诉编辑器update方法会抛出这个异常就可以了。
还有楼上说的auth middleware和这个问题没有关系,auth是用来用户认证的,和授权没有关系




屏幕快照 2018-08-15 下午10.14.45.png
关于 LearnKu
推荐文章: