📜  laravel 验证枚举字段 - PHP (1)

📅  最后修改于: 2023-12-03 15:02:39.126000             🧑  作者: Mango

Laravel 验证枚举字段 - PHP

在 Laravel 中有时需要在表单验证中使用枚举类型,本文将介绍如何使用 Laravel 提供的验证规则来验证枚举字段。

准备工作

我们先定义一个枚举类,例如:

<?php

namespace App\Enums;

use BenSampo\Enum\Enum;

final class UserType extends Enum
{
    const Admin =   'admin';
    const User =   'user';
}

这里使用了第三方库 BenSampo/Enum 来定义枚举类,也可以自己手动实现,但使用这个库可以简化操作。

验证规则

使用 in 规则来验证枚举字段,规则的值为枚举类中的所有值:

$request->validate([
    'user_type' => ['required', Rule::in(UserType::getValues())],
]);

这里使用了 Rule::in 来获取所有值,因为枚举类使用了第三方库,也可以手动获取所有值。

错误信息

如果验证不通过,可以通过 messages 方法来自定义错误信息:

$request->validate([
    'user_type' => ['required', Rule::in(UserType::getValues())],
], [
    'user_type.in' => 'The user type must be either admin or user.',
]);
结论

Laravel 提供了非常简单易懂的验证规则,能够让我们轻松地实现枚举字段的验证。通过本文,你已经了解了如何使用枚举类型、验证规则和错误信息来构建一个完整的表单验证过程。