Laravel 8 登录后重定向至welcome页面出现Undefined index: user错误求助
报错原因
Undefined index: user 错误触发的根本原因是控制器中尝试读取请求参数里的user键,但前端登录表单提交的参数中不存在该键值。
修复方案
- 修正前端表单字段属性
打开login.blade.php,确认账号输入框的name属性设置为user,同时补充Laravel必填的CSRF令牌字段,完整表单参考:
<form action="user" method="POST"> @csrf <input type="text" name="user" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <button type="submit">登录</button> </form>
- 优化控制器参数校验
给控制器增加必填参数校验逻辑,避免缺参数时报错,修改后的UserAuth控制器代码:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserAuth extends Controller { function userLogin(Request $req) { // 校验请求参数合法性 $credentials = $req->validate([ 'user' => 'required|string', 'password' => 'required|string' ]); // 写入session $req->session()->put('user', $credentials['user']); return redirect('welcome'); } }
- 字段名称对齐
如果你实际的账号字段命名不是user(比如是email/username),只需保证表单name属性值和控制器读取的参数键名完全一致即可。
内容的提问来源于stack exchange,提问作者Hamza
相关产品推荐
相关产品推荐

