我在 Laravel 中有登录表单,但在电子邮件和密码字段上显示错误时遇到问题。我制作了验证器,其中包含该错误消息,并将其放入会话中并在 GET /login 上重定向它。我需要有关如何从会话中读取这些值并将它们作为参数返回到 Blade 中的帮助,然后能够显示电子邮件和密码的这些错误消息。目前验证有效,但不显示任何消息,仅重定向回登录页面。任何帮助表示赞赏。这是我的代码。网页.phpRoute::post('/login', 'Auth\LoginController@login')->name('login');登录控制器public function showLoginForm(Request $request){ $session = $request->session()->get('data'); return view('auth.login', compact('session'));}public function login(Request $request){ $rules = array( 'email' => 'required|email', 'password' => 'required|alphaNum|min:3' ); $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $request->session()->put('data', $request->input()); return redirect()->intended('login') ->withErrors($validator) ->withInput($request->session()->put('data', $request->input())); } else { $userData = array( 'email' => $request->get('email'), 'password' => $request->get('password') ); } if (Auth::attempt($userData)) { return redirect()->intended('dashboard'); } else { redirect()->intended('login'); }}
1 回答

慕的地8271018
TA贡献1796条经验 获得超4个赞
你必须打电话->withErrors($validator->errors())
。这将返回正确的MessageBag
. 否则你将返回一个Validator
实例。之后您可以根据需要使用$errors
变量或标签。@error
@edit 插入inteded()
使用route()
或back()
.
- 1 回答
- 0 关注
- 143 浏览
添加回答
举报
0/150
提交
取消