alejoluc/validation

0.3.2 2018-07-12 21:52 UTC

This package is auto-updated.

Last update: 2024-09-10 05:40:19 UTC


README

安装

通过命令行

composer require alejoluc/validation

或者在 composer.json 中手动添加

{
  "require": {
    "alejoluc/validation": "*"
  }
}

验证器

Alpha                   Only letter characters
Alphanumeric            Only letters and numbers
AlphanumericUnderscore  Only letters, numbers and underscore
Email                   Valid E-mail address
URL                     Valid URL
Equals                  Strict comparison between two values
NotEquals               Strict comparison between two values
Between                 Numeric value between a minimum and a maximum
GreaterThan
LessThan
InArray
NotInArray
NotEmpty                A value is required
Regex
NotRegex
Numeric                 Checks whether a value is numeric (including strings containing numbers)

用法

<?php

require __DIR__ . '/vendor/autoload.php';

use alejoluc\Validation\Validations;
use alejoluc\Validation\Validator;

$validator = new Validator;

$data = [
    'name'  => 'Alejo Lucangeli',
    'mail'  => 'alejolucangeli@gmail.com',
    'token' => 'adsjkgfuy43758vkj',
    'level' => 3
];
$rules = [
    'name'  => new Validations\NotEmpty,
    'mail'  => [new Validations\NotEmpty, new Validations\Email],
    'token' => new Validations\Regex('/^[a-z0-9]+$/'),
    'level' => [new Validations\Numeric, new Validations\Between(0, 5)]
];

$result = $validator->validate($data, $rules);
if ($result->passes()) {
    echo "All fine";
} else {
    //Display all error messages
    $errors = $result->getErrorMessages();
    foreach ($errors as $error) {
        echo "- $error\n";
    }
    
    //Display errors by field
    $errors = $result->getErrors();
    foreach ($errors as $field => $errorMessages) {
        echo "Errors in field $field:\n";
        foreach ($errorMessages as $message) {
            echo "  - $message\n";
        }
    }
}

使用门面

熟悉 Laravel 的开发者可能习惯于调用门面以访问对象的实例。Validation 也支持这一功能。

<?php

require __DIR__ . '/vendor/autoload.php';

use alejoluc\Validation\Validations;
use alejoluc\Validation\ValidatorFacade as Validator;

//[... setup data and rules ]

/* @var alejoluc\Validation\ValidationResult $result */
$result = Validator::validate($data, $rules);
if ($result->passes()) {
    echo "All fine";
} else {
    $errors = $result->getErrorMessages();
    foreach ($errors as $error) {
        echo "- $error\n";
    }
}

更改错误信息语言

内置语言为英语和西班牙语,默认为英语。要添加语言,请创建一个位于 lang 文件夹中的文件。

以下是更改错误返回语言的示例。

<?php

require __DIR__ . '/vendor/autoload.php';

use alejoluc\Validation\Validations;
use alejoluc\Validation\Validator;

$validator = new Validator;
$validator->setLanguage('es-es');

//....