alphametric / laravel-validation-rules
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
。 - 由于Laravel原生支持,已删除
EndsWith
规则。 - 已删除
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编码的图像 - 详细信息请参阅类 |
LocationCoordinates | validation.location_coordinates | 要求给定的值是纬度和经度坐标的逗号分隔集合 |
FileExists | validation.file_exists | 要求给定的值是现有文件的路径 - 详细信息请参阅类 |
MacAddress | validation.mac_address | 要求给定的值是有效的MAC地址 |
ISBN | validation.isbn | 要求给定的值是有效的ISBN-10或ISBN-13编号 |
EvenNumber | validation.even_number | 要求给定的值是偶数(首先使用intval转换小数) |
OddNumber | validation.odd_number | 要求给定的值是奇数(首先使用intval转换小数) |
Lowercase | validation.lowercase | 要求给定的值是小写字符串 |
Uppercase | validation.uppercase | 要求给定的值是大写字符串 |
Titlecase | validation.titlecase | 要求给定的值是标题大小写字符串 |
Domain | validation.domain | 要求给定的值是一个域名,例如google.com,www.google.com |
CitizenIdentification | validation.citizen_identification | 要求给定的值是美国的、英国的、法国的、巴西的或越南的公民身份号码(详细信息请参阅类) |
WithoutWhitespace | validation.without_whitespace | 要求给定的值不包含任何空白字符 |
MaxWords | validation.max_words | 要求给定的值不能包含比指定更多的单词 |
HexColor | validation.hex_color | 要求给定的值是有效的十六进制颜色,例如#fff,#0f0f0f,#00ff0080 |
贡献
感谢您考虑对Axiom做出贡献。您欢迎提交包含改进的PR,但如果它们本质上是重大的,请务必还包括一个或多个测试。
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。