我想为其帖子中作者的用户提供访问编辑页面。
在PostController
我使用:
public function edit(Vocabulary $vocabulary)
{
if ($vocabulary->user_id != Auth::id()) {
return redirect()
->route('home')
->with('danger', 'You cannot edit another user's vocabulary.');
}
// return view...
}
所以,我的问题是如何压缩代码的这一部分。我可以为这个使用更少的代码行(因为我必须在很多方法中编写这样的块。)?
// I'm checking current User's id and author's id in the post..
if ($vocabulary->user_id != Auth::id()) {
return redirect()
->route('home')
->with('danger', 'You cannot edit another user's vocabulary.');
}
P.S。我理解这是一个简单的问题,但我不知道如何正确地做到这一点。请不要减去:D
答案 0 :(得分:0)
在编辑页面中使用中间件并将其添加到其路线中,如果auth用户是作者,则传递它,否则显示错误
public function checkAuthor($Request , closure $next)
{
If( CONDITION FOR CHECKING AUTHOR) {
return response(error message)
}
return $next($Request)
}
我想这会有所帮助
答案 1 :(得分:0)
我强烈建议您使用Laravel 策略类来处理它。您只需为要提供访问权限的每个模型创建一个Policy类。因此,在政策类中,您可以为每个操作实施不同的算法,例如更新,删除等。 您可以在以下链接中找到更多信息: