saroj-pant/validation

v1.0.0 2016-07-18 15:51 UTC

This package is auto-updated.

Last update: 2024-09-13 09:52:49 UTC


README

这是如何工作的?

步骤 1. 创建实例

$validator = new SarojPant\Validation\Validator();

步骤 2. 调用 validate() 方法

$validator->validate($data, $rules, $validationMessages);

步骤 3. 检查验证结果

if ($validator->passed() { // Do something }
if ($validator->failed() { // Do something }
var_dump($validator->getErrors();
var_dump($validator->getErrors('first_name');
echo $validator->getFirstError();
echo $validator->getFirstError('first_name');
if ($validator->hasError()) { // Do something }
if ($validator->hasError('name')) { // Do something }

验证规则

validate 方法期望一个包含字段名和规则的数组。

规则只是一个至少包含有效规则名的字符串。

$rules = ['name' => 'required'];

可以使用冒号 (:) 传递参数给规则。

$rules = ['name' => 'minLength:6'];

可以使用管道符 (|) 将多个规则应用于字段。

$rules = ['name' => 'required|minLength:6]';

可用规则

required

用法

// $data = (array) ...
$rules = ['name' => 'required'];
$validationMessages = ['name' => 'Name is required.'];
$validator->validate($rules, $data, $validationMessages);

equals

用法

$rules = ['confirm_password' => 'equals|password'];
$validationMessages = ['confirm_password.equals' => 'Password did not match.'];
$validator->validate($rules, $data, $validationMessages);

equalsBooleanTrue

用法

$rules = ['i_agree' => 'equalsBooleanTrue'];

equalsBooleanFalse

用法

$rules = ['i_agree' => 'equalsBooleanFalse'];

email

用法

$rules = ['username' => 'email'];

int

用法

$rules = ['age' => 'int'];

unsigned

用法

$rules = ['age' => 'unsigned'];

min

用法

$rules = ['age' => 'min:21'];

max

用法

$rules = ['age' => 'max:55'];

minLength

用法

$rules = ['comment' => 'minLength: 80'];

maxLength

用法

$rules = ['username' => 'maxLength: 20'];

inCsv

$rules = ['name' => 'inCsv: Greg, Anne, Lucy, Sophie'];

简单联系表单示例

/** @var Request $request */
$data = $request->request->all();
$rules = [
    'name' => 'required',
    'email' => 'email',
    'message' => 'required|minLength:30'
];
$validationMessages = [
    'name' => 'Name is required.',
    'email' => 'Invalid Email.',
    'message.required' = 'Message is required.',
    'message.minLength' = 'Message should be at least 30 characters.'
];

$validator = new \SarojPant\Validation\Validation();
$validator->validate($data, $rules, $validationMessages);

if ($validator->passed()) {
    echo 'Thank you for your message.';
} else {
   if ($validator->hasError('name') {
       echo '<span class="error">' . $validator->getFirstError('name') . '</span>';
   }
   
   // ..
}



测试

在 SarojPant\Validation 文件夹中运行 phpunit。