【发布时间】:2015-03-11 11:37:56
【问题描述】:
我刚开始学习 Laravel 5,遇到了一个我无法解决的问题: 如何判断某个用户只能看到某些东西。
例如,如果我查看不是我自己的个人资料,“编辑个人资料”按钮应该不可见。但是如果我查看我自己的个人资料,这个按钮应该是可见的。
我已经得到的是授权某些请求。例如授权用户实际更新个人资料:
public function updateProfile(Profile $profile, UpdateProfile $request){
//update the given profile
}
所以这里的 UpdateProfile 是一个请求类,它有一个 authorize() 和一个 rule() 方法,在 authorize() 方法中我检查登录的用户是否正在更新他自己的个人资料。
所以我想也许我可以单独使用 authorize() 方法,但我不确定如何。
现在我当然可以随时检查:
if($user -> userID == Auth::user() -> userID)
但是如果我需要检查更复杂的东西怎么办,例如当我写一篇文章并想为我想检查的那个帖子显示一个删除按钮时: 是用户管理员,如果不是该帖子的用户作者,如果其中任何一个为真,则显示删除按钮。
所以我的问题是,在 laravel 5 中我会在哪里检查这样的东西?
【问题讨论】: