laravel FormRequest 验证问题
问题按照评论区大佬方案已解决
非 ajax 表单验证错误会跳转的。
估计是跳转到首页,而你首页是空白的。
dd(request()->ajax())
添加请求头:X-Requested-With: XMLHttpRequest
添加请求头:Accept:application/json
告诉服务器期望接收到的数据类型是json格式也可以
1. 运行环境
Ng 1.27
laravel 11
PHP 版本:8.3
MacOS 15
开发环境
2. 问题描述?
FormRequest 验证问题
- router
Route::post('/register', [AuthController::class, 'register']);
- AuthController
namespace App\Http\Controllers;
use App\Http\Requests\RegisterRequest;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
public function register(RegisterRequest $request, User $user)
{
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->password = Hash::make($request->input('password'));
$user->save();
return response()->json([
'code' => 0,
'message' => '用户注册成功',
'user' => $user
], 201);
}
- RegisterRequest
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class RegisterRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'name' => ['required', 'between:3,20', 'regex:/^[a-z]\w+$/i', 'unique:users,name'],
'email' => ['required', 'email', 'unique:users,email'],
'password' => ['required', 'between:5,20', 'confirmed'],
];
}
}
图片一直弄不上来 使用apifox模拟请求结果就只看到了200状态码
响应参数那是空白
能知道的就是确实进行了验证 在rules方法内可以截取到数据
非ajax表单验证错误会跳转的。
估计是跳转到首页,而你首页是空白的。
dd(request()->ajax())
添加请求头:
X-Requested-With: XMLHttpRequest