在我的控制器中,我验证我的json请求的字段.为了遵守单一责任,我想创建一个自定义的Validator类,并将以下代码放入我的Validator类.

当我键入时:

php artisan make:validator MyValidator

我发现在较新的版本中不存在验证器类.那么,我应该在Laravel 10中将以下代码放在哪里呢?保持在控制器中似乎不是最佳实践.

$validator = Validator::make($request->json()->all(), [
    "field1" => "required",
    "field2" => "required|numeric",
]);

if ($validator->fails()) {
    return response()->json([
       'message' => __("Please fill required fields"),
       'errors' => $validator->errors(),
    ], 422);
}    

推荐答案

you need to use this command
php artisan make:request StorePostRequest
and put your validation conditions in the rules function

public function rules(): array
{
    return [
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ];
}


您还需要更改该文件中名为authorize的另一个函数的返回:(因为我们通常判断路由文件的权限,所以直接返回TRUE)

public function authorize(): bool
{
    /* if you haven't checked the authorization, you can return Auth::user(); */
    return true;
}

Php相关问答推荐

419注册期间Laravel 11中的错误

通过激活模板在数据库中创建表

WooCommerce基于元数据的自定义范围目录排序

Laravel eloquent-如果没有包含InitialValue的结果,则查询where Second Value

PHP文件上载问题-";Move_Uploaded_Files";未按预期工作

升级到PHP 8.2后无法删除cURL Cookie文件

使用HPOS过滤WooCommerce中的订单列表

从 WooCommerce 购物车中删除总计部分,同时保留小计行

对产品/库存结果集进行分组和计数,形成多维分层数组

根据小计向 WooCommerce Checkout 添加佣金

PHP Laravel 迁移文件不创建关系

AWS S3:当对象名称包含 % 时复制对象失败并出现错误 - 无效的复制源编码

Laravel Eloquent(where 子句)

批量作业(job)提交错误无法处理所有文档,uris 似乎正确?

Laravel:ArgumentCountError: 函数 App\Mail 的参数太少

为什么 ECDSA 384 签名验证在 GO 中失败,但在 PHP 中却没有?

password_verify 在 PHP 7.4 中有效,但在 PHP 8.2 中无效

标头内容类型:image/jpeg 无效

从 d-m-Y 日期格式 laravel 计算月份 = 01 的列的总和

使用 PHP 有条件地使用关键字 Twilio Programmable SMS