php - 在 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();
}
}
解决方案
Laravel 有内置的 Auth 系统,如果你使用它,你可以使用像我项目中的示例这样的构造函数。
public function __construct()
{
$this->middleware('auth');
}
这只是说用户在没有登录的情况下无法访问此类中的任何方法。如果他们没有登录,它将重定向他们回到登录页面。在您的观点中,您还可以拥有@auth 和@guest。我使用它来显示有关私人信息的信息,例如私人服务器只能由登录用户看到。
如果您还有其他问题我可以回答,请告诉我,我很乐意提供帮助!
推荐阅读
- python - 如何使用pybind11在c++中调用python内置函数
- c# - HttpClient 中的 PostAsync 不会将数据发送到我的 webapi
- javascript - AJAX 将变量从范围滑块传递到 PHP 查询
- python - Python - Beautiful Soup 4 - 'NavigableString' 对象没有属性 'find_all'
- linux - 无法在 Ubuntu 上设置 Git
- java - 在 android apk 中从 .jar 库中保存 *.so 库
- spring - Flutter 客户端订阅 Spring Boot Websocket Server
- typescript - 当我以 ES6 为目标时,Typescript 编译器缺少 ECMAScript 5 支持
- c# - 如何在 C# 中将一个 WebMethod 字段调用到另一个 WebMethod
- css - React - 其他弹出窗口顶部的弹出位置