alphametric/laravel-validation-rules

此包已被弃用,不再维护。作者建议使用mattkingshott/axiom包。

提供可重用Laravel验证规则的库。

v3.2.1 2021-03-25 12:05 UTC

README

此包为Laravel项目提供可重用的验证规则库。使用它们来增强Laravel本身提供的现有规则集。

安装

使用composer引入包

composer require caneara/axiom

升级

Axiom包含几个与原始包不兼容的更改,因此如果您正在使用旧版本,需要按照以下步骤操作

  1. 确保您正在使用PHP 7.4或更高版本。
  2. 从您的composer.json文件中移除alphametric/laravel-validation-rules
  3. 运行composer update从您的vendor目录中移除包。
  4. 通过运行composer require caneara/axiom安装Axiom。
  5. 将所有use Alphametric\Validation实例替换为use Axiom
  6. 由于Laravel原生支持,已删除EndsWith规则。
  7. 已删除Equals规则。相反,您应使用Laravel本地的in规则与单个选项。
  8. 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)。有关更多信息,请参阅许可文件