mattkingshott / axiom
v3.2.1
2021-03-25 12:05 UTC
Requires
- php: ^7.4|^8.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
此包为您的Laravel项目提供可重用验证规则的库。使用它们来扩展Laravel本身提供的现有规则集。
安装
使用composer引入此包
composer require caneara/axiom
升级
Axiom与原始包相比包含几个破坏性变更,因此如果您使用的是旧版本,您需要按照以下步骤操作
- 请确保您正在使用PHP 7.4或更高版本。
- 从您的
composer.json
文件中删除alphametric/laravel-validation-rules
。 - 运行
composer update
以从您的vendor
目录中删除包。 - 通过运行
composer require caneara/axiom
安装Axiom。 - 将所有
use Alphametric\Validation
实例替换为use Axiom
。 EndsWith
规则已被删除,因为Laravel现在原生支持此功能。Equals
规则已被删除。相反,您应使用Laravel原生的in
规则和一个选项。DoesNotExist
规则已被重命名为Missing
。
用法
根据Laravel 文档,只需在需要的地方导入相关的验证类,然后在特定字段的规则中包含它即可。
use Axiom\Rules\StrongPassword; // ... $request->validate([ 'password' => ['bail', 'required', new StrongPassword], ]);
重要:与所有自定义规则一样,您不能使用管道分隔的字符串。您必须使用一个array
,例如。
'password' => ['bail', 'required', new StrongPassword] // correct 'password' => 'bail|required|new StrongPassword' // wrong
如果验证失败,此包将尝试使用本地化的错误消息进行响应(请参阅下面的消息键)。如果键不存在,它将回退到硬编码的英语语言版本。
可用的规则
以下验证规则目前可用
规则 | 消息键 | 描述 |
---|---|---|
StrongPassword | validation.strong_password | 需要存在一个“强”密码 - 请参阅类以获取详细信息 |
TelephoneNumber | validation.telephone_number | 需要存在一个有效的电话号码 - 请参阅类以获取详细信息 |
RecordOwner | validation.record_owner | 需要认证用户id与给定数据库记录上的user_id列匹配,例如:owner:posts,id |
MonetaryFigure | validation.monetary_figure | 需要存在一个货币数额,例如$72.33 - 请参阅类以获取详细信息 |
DisposableEmail | validation.disposable_email | 需要存在一个非一次性电子邮件地址 |
Missing | validation.missing | 需要给定值不在给定数据库表/列中 - 请参阅类以获取详细信息 |
Decimal | validation.decimal | 需要给定值是一个具有适当格式的十进制数 - 请参阅类以获取详细信息 |
EncodedImage | validation.encoded_image | 需要给定值是一个给定MIME类型的base64编码的图像 - 请参阅类以获取详细信息 |
位置坐标 | validation.location_coordinates | 要求提供的值是逗号分隔的纬度和经度坐标集 |
文件存在 | validation.file_exists | 要求提供的值是现有文件的路径 - 请参阅类详细信息 |
MAC地址 | validation.mac_address | 要求提供的值是有效的MAC地址 |
ISBN | validation.isbn | 要求提供的值是有效的ISBN-10或ISBN-13编号 |
偶数 | validation.even_number | 要求提供的值是偶数(首先使用intval将小数转换为整数) |
奇数 | validation.odd_number | 要求提供的值是奇数(首先使用intval将小数转换为整数) |
小写 | validation.lowercase | 要求提供的值是小写字符串 |
大写 | validation.uppercase | 要求提供的值是大写字符串 |
标题大小写 | validation.titlecase | 要求提供的值是标题大小写字符串 |
域名 | validation.domain | 要求提供的值是域名,例如:google.com, www.google.com |
公民识别号 | validation.citizen_identification | 要求提供的值是美国、英国、法国、巴西或越南的公民识别号码(请参阅类详细信息) |
无空白字符 | validation.without_whitespace | 要求提供的值不包含任何空白字符 |
最大单词数 | validation.max_words | 要求提供的值包含的单词数不超过指定数量 |
十六进制颜色 | validation.hex_color | 要求提供的值是有效的十六进制颜色,例如:#fff, #0f0f0f, #00ff0080 |
贡献
感谢您考虑为Axiom做出贡献。您欢迎提交包含改进的PR,但如果它们本质上是重大的,请确保还包括一个或多个测试。
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。