如何为作者用户显示帖子编辑页面?

时间:2018-03-30 17:36:57

标签: laravel

我想为其帖子中作者的用户提供访问编辑页面。

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

2 个答案:

答案 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类。因此,在政策类中,您可以为每个操作实施不同的算法,例如更新删除等。 您可以在以下链接中找到更多信息:

Writing Policies