📅  最后修改于: 2023-12-03 15:02:39.126000             🧑  作者: Mango
在 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 提供了非常简单易懂的验证规则,能够让我们轻松地实现枚举字段的验证。通过本文,你已经了解了如何使用枚举类型、验证规则和错误信息来构建一个完整的表单验证过程。