首页 > 解决方案 > 在 laravel 中用 Auth 评论

问题描述

我希望用户仅在登录时发表评论。否则会出现一个按摩师“您必须登录才能发表评论”。如果我登录它可以工作,如果不是它不只是重定向回来! 我解决了。问题是 PostCommentsController 位于管理员中间件中,您必须登录才能查看您是否是管理员。如果你没有登录重定向到索引。

控制器:

public function store(Request $request)
{
    if (Auth::check()) {
        $user = Auth::user();
        $data = [
            'post_id' => $request->post_id,
            'author' => $user->name,
            'email' => $user->email,
            'body' => $request->body
        ];
        
        Comment::create($data); 
        $request->session()->flash('comment_success','Your comment have been submited and is waiting moderation');
        return redirect()->back();
    } else {            
        $request->session()->flash('login','You must be logged in to post a comment');
        return redirect('/login')->back();
    }       
}

标签: phplaravelauthenticationcomments

解决方案


Laravel 有内置的 Auth 系统,如果你使用它,你可以使用像我项目中的示例这样的构造函数。

public function __construct()
{
    $this->middleware('auth');
}

这只是说用户在没有登录的情况下无法访问此类中的任何方法。如果他们没有登录,它将重定向他们回到登录页面。在您的观点中,您还可以拥有@auth 和@guest。我使用它来显示有关私人信息的信息,例如私人服务器只能由登录用户看到。

如果您还有其他问题我可以回答,请告诉我,我很乐意提供帮助!

https://laravel.com/docs/5.6/authentication


推荐阅读