saroj-pant / validation
v1.0.0
2016-07-18 15:51 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: ~4.8
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'];
用法
$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。