ixudra / validation
自定义 Laravel 验证库 - 由 Ixudra 开发
1.3.0
2021-12-09 22:22 UTC
Requires
- php: >=5.4.0
- illuminate/support: >=4.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.6
README
自定义 PHP 验证库 - 由 Ixudra 开发。
此包提供各种验证规则,适用于 PHP 网络应用程序。这些规则可以轻松验证用户输入,确保其满足您设定的要求。
请注意,此包旨在用于 Laravel 框架,但并非仅限于此。这基本上意味着大多数验证方法在任何 PHP 应用程序中都是通用的,但其中一些使用 Laravel 的内部组件(例如,参见 UserValidationTrait
)。除非您也在您的应用程序中包含所使用的依赖项,否则这些方法可能无法正确工作。
此包可以随时由任何人使用,但请注意,它针对我的个人定制工作流程进行了优化。它可能不完全适合您的项目,可能需要进行修改。
安装
通过 Composer 拉取此包。
{ "require": { "ixudra/validation": "1.*" } }
Laravel 使用方法
要使用此包与 Laravel 4 或 5,您必须扩展默认的验证器类。一旦创建了这个类,您可以将特性包含到类中,以使用验证方法。Laravel 会自动拾取验证规则并使其可用。请注意,如果您不想包含所有特性,则不需要包含所有特性。所有验证规则都是完全独立的,这允许最大程度的定制。
use Ixudra\Validation\DateValidationTrait; use Ixudra\Validation\TimeValidationTrait; use Ixudra\Validation\ArrayValidationTrait; use Ixudra\Validation\PasswordValidationTrait; use Ixudra\Validation\CoordinateValidationTrait; class CustomValidator extends \Illuminate\Validation\Validator { use DateValidationTrait; use TimeValidationTrait; use ArrayValidationTrait; use PasswordValidationTrait; use CoordinateValidationTrait; }
接下来,您需要将以下内容添加到您的 routes.php
文件中,让 Laravel 知道您想使用自定义验证器类而不是默认类
Validator::resolver(function($translator, $data, $rules, $messages) { return new CustomValidator($translator, $data, $rules, $messages); });
完成此操作后,您就准备就绪了。现在,您可以通过与 Laravel 已经提供给您使用默认规则相同的方式包含自定义验证规则
$attributes = array( 'att1' => 'john.doe@gmail.com', 'att2' => 0, 'att3' => date('Y-m-d', strtotime('next week')) ); $rules = array( 'att1' => 'required|email', 'att2' => 'required|truthy', 'att3' => 'required|future' ); $validator = Validator::make( $attributes, $rules ); $validator->fails();
可用的验证方法
数组验证
- array_size: 验证数组的长度
- one_or_more_selected: 如果数组中包含值为
true
的条目,则返回true
日期验证
- past: 如果值包含过去的日期,则返回
true
- future: 如果值包含未来的日期(不包括今天),则返回
true
- less_than_three_days_old: 如果值包含三天前的日期,则返回
true
- today_or_later: 如果值包含未来的日期(包括今天),则返回
true
文件验证
- unique_file_name: 如果值是唯一的文件名,则返回
true
。此函数期望文件的完整路径名从 Laravel 的public/
目录开始
JSON 验证
- json: 如果值包含有效的 JSON 字符串,则返回
true
数字验证
- positive: 如果值大于 0,则返回
true
- negative: 如果值小于 0,则返回
true
密码验证
- valid_password: 如果值包含有效的密码(至少 6 个字符长,至少一个小写字母,至少一个大写字母和至少一个数字),则返回
true
- correct_password: 如果值包含认证用户的正确密码(不会尝试重新认证用户),则返回
true
字符串验证
- empty: 如果值包含空字符串,则返回
true
电话验证
- 电话号码:如果值包含有效的(比利时)电话号码,则返回
true
时间验证
- 时间:如果值包含有效的时间戳,则返回
true
- 时间格式:如果值包含指定格式的时间戳,则返回
true
真值验证
- truthy:如果值是
true
或false
,则返回true
- true:如果值是
true
,则返回true
用户验证
- email_belongs_to_authenticated_user:如果值包含属于认证用户的电子邮件地址,则返回
true
- id_belongs_to_authenticated_user:如果值包含属于认证用户的ID,则返回
true
祝您玩得开心!