larakit / lk-validatebuilder
[Larakit] 验证构建器
dev-master
2018-08-09 05:48 UTC
Requires
This package is auto-updated.
Last update: 2024-09-16 00:53:05 UTC
README
验证规则数组生成器
##该包解决的问题
- 通过自动补全节省在编写验证规则数组时的时间
以下以 Request 为例展示使用方法
###1. 生成验证规则构建器
php artisan make-lk:validator UserRegister
将创建一个文件
./app/Http/Validators/UserRegisterValidator.php
打开它并添加规则
<?php namespace App\Validators; use Larakit\ValidateBuilder; class UserRegisterValidator extends ValidateBuilder { function build() { $this ->messageRequired('Забыл заполнить?') //############################################################ //составляем правила для поля "логин" //############################################################ ->to('login') //это будет обязательное поле ->ruleRequired('Мы настаиваем на заполнении этого поля') //с минимальной длиной 6 символов ->ruleMin(6) //с проверкой уникальности по полю логин в таблице пользователей ->ruleUnique('users', 'login') //############################################################ //составляем правила для поля "пароль" //############################################################ ->to('password') //это будет обязательное поле ->ruleRequired() //это будет требовать подтверждения ->ruleConfirmed() //оно должно соотвествовать регулярному выражению ->ruleRegex('[\w\d]+') //с минимальной длиной 6 символов ->ruleMin(8) //############################################################ //составляем правила для поля "фамилия" //############################################################ ->to('last_name') //с минимальной длиной 6 символов ->ruleMin(3) //с максимальной длиной 30 символов ->ruleMax(30) //состоящей только из букв ->ruleAlpha() //############################################################ //составляем правила для поля "логин" //############################################################ ->to('first_name') //с минимальной длиной 6 символов ->ruleMin(3) //с максимальной длиной 30 символов ->ruleMax(30) //состоящей только из букв ->ruleAlpha() //будем требовать заполнение поля "имя" ТОЛЬКО когда заполнено поле "отчество" ->ruleRequiredWith('middle_name') //############################################################ //составляем правила для поля "логин" //############################################################ ->to('middle_name') //с минимальной длиной 6 символов ->ruleMin(3) //с максимальной длиной 30 символов ->ruleMax(30) //состоящей только из букв ->ruleAlpha() //будем требовать заполнение поля "отчество" ТОЛЬКО когда заполнены оба поля: "фамилия" и "отчество" ->ruleRequiredWithAll('first_name,last_name') } }
###2. 生成请求本身
php artisan make:request UserRegister
将创建一个文件
./app/Http/Requests/UserRegister.php
其中将编写规则,它们将是以下内容
<?php namespace App\Http\Requests; use App\Validators\UserRegisterValidator; use App\Http\Requests\Request; class UserRegister extends Request { /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return false; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return UserRegisterValidator::instance()->rules(); } /** * Set custom messages for validator errors. * * @return array */ public function messages() { return UserRegisterValidator::instance()->messages(); }
##输出结果
###规则
[ "login" => "required|min:6|unique:users,login" "password" => "required|confirmed|regex:[\w\d]+|min:8" "last_name" => "min:3|max:30|alpha" "first_name" => "min:3|max:30|alpha|required_with:middle_name" "middle_name" => "min:3|max:30|alpha|required_with_all:first_name,last_name" ];
###错误消息
[ 'required' => 'Забыл заполнить?', 'login.required' => 'Мы настаиваем на заполнении этого поля' ];
###头部 - 不要把它变成一个阁楼,也不需要储存不需要的东西!把这些事情交给自动补全吧!