【发布时间】:2014-10-04 09:27:23
【问题描述】:
我仍在学习 Laravel 和最佳实践。
我有一个用户系统,所以你可以通过 UserController 创建和更新用户。只有管理员应该能够访问用户并操纵他们。所以我创建了以下路线:
Route::resource('user', 'UserController')->before('role:admin');
一切看起来都很好,工作正常。我有一个过滤器,用于检查登录用户是否是管理员,然后才能访问与用户有关的任何内容。
这就是我感到困惑的地方。登录但不是管理员的用户应该仍然能够编辑自己的信息(电子邮件、密码、用户名)。我已经使用相同的表单部分设置了一个新表单我已经设置用于编辑用户,因为所有字段都是相同的,我认为我可以使用相同的表单方法处理表单,以免重复处理,这是相同的:
{{Form::model($user, ['method'=>'PATCH', 'route'=>['user.update', $user->id]])}}
除了,因为我的用户不是管理员,他们被推送回 403 消息而不是处理脚本。
我如何让用户编辑自己的信息的例外情况,而不会失去对 UsersController 的管理员限制?
【问题讨论】: