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 方法内可以截取到数据

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

非 ajax 表单验证错误会跳转的。

估计是跳转到首页,而你首页是空白的。

dd(request()->ajax())


添加请求头:X-Requested-With: XMLHttpRequest

6个月前 评论
肌无力猛男 (楼主) 6个月前
讨论数量: 15

public function authorize(): bool { return true; }

true 改为 false , 注册不需要验证

6个月前 评论
肌无力猛男 (楼主) 6个月前
肌无力猛男 (楼主) 6个月前
deatil (作者) 6个月前

你这里代码返回的 201,最后 apifox 收到是 200。那打个断点看下有进到这个方法吗

6个月前 评论
肌无力猛男 (楼主) 6个月前
肌无力猛男 (楼主) 6个月前
神的孩子丶都在跳舞 (作者) 6个月前
肌无力猛男 (楼主) 6个月前
神的孩子丶都在跳舞 (作者) 6个月前
肌无力猛男 (楼主) 6个月前
神的孩子丶都在跳舞 (作者) 6个月前
肌无力猛男 (楼主) 6个月前

非 ajax 表单验证错误会跳转的。

估计是跳转到首页,而你首页是空白的。

dd(request()->ajax())


添加请求头:X-Requested-With: XMLHttpRequest

6个月前 评论
肌无力猛男 (楼主) 6个月前