andrewdyer / slim3-validator
使用Respect/Validation构建的Slim框架验证库
v0.1.1
2018-11-15 13:47 UTC
Requires
- php: >=7.0.0
- respect/validation: ^1.1.29
- slim/slim: ^3.11.0
This package is auto-updated.
Last update: 2024-09-17 21:49:08 UTC
README
使用Respect/Validation构建的Slim框架验证库。
许可证
遵循MIT许可证。完全免费用于私人或商业项目。
安装
composer require andrewdyer/slim3-validator
用法
use Slim\App; use Anddye\Validation\Validator; use Respect\Validation\Validator as v; $app = new App(); $container = $app->getContainer(); $container['validationService'] = function () { return new Validator(); }; $app->get('/', function (Request $request, Response $response) use ($container) { $validation = $container['validationService']->validate($request, [ 'email' => v::email()->length(1, 254)->notEmpty(), 'forename' => v::alpha()->length(1, 100)->notEmpty()->noWhitespace(), 'password' => v::length(8, 100)->notEmpty(), 'surname' => v::alpha()->length(1, 100)->notEmpty()->noWhitespace(), 'username' => v::alnum()->length(1, 32)->notEmpty()->noWhitespace(), ]); if (!$validation->hasPassed()) { // Validation has not passed } else { // Validation has passed } }); $app->run();
将新的Anddye.Validation\Validator;
实例附加到您的应用程序容器中,以便在任何需要的地方访问。
$container['validationService'] = function () { return new \Anddye\Validation\Validator(); };
您可以使用validate()辅助函数轻松验证表单输入。将validate()方法分配给变量,传递请求对象以及一个数组,其中数组键表示字段的名称,数组值表示验证规则。
$validation = $container['validationService']->validate($request, [ 'email' => v::email()->length(1, 254)->notEmpty(), 'forename' => v::alpha()->length(1, 100)->notEmpty()->noWhitespace(), 'password' => v::length(8, 100)->notEmpty(), 'surname' => v::alpha()->length(1, 100)->notEmpty()->noWhitespace(), 'username' => v::alnum()->length(1, 32)->notEmpty()->noWhitespace(), ]);
Respect\Validation是命名空间化的,但您可以通过将单个类导入上下文来简化您的操作
use Respect\Validation\Validator as v;
然后,您可以使用hasPassed()方法检查验证是否通过
if (!$validation->hasPassed()) { // Validation has not passed } else { // Validation has passed }
如果验证失败,可以通过调用getErrors()方法访问验证错误数组
foreach ($validation->getErrors() as $input => $errors) { foreach ($errors as $error) { echo $error; } }
支持
如果您对这个库有一般性问题,请随时通过Twitter联系我。
如果您认为您找到了一个问题,请使用问题跟踪器报告它,或者更好的是,分支存储库并提交拉取请求。
如果您使用这个包,我很乐意听听您的想法!