Package Data | |
---|---|
Maintainer Username: | larakit |
Maintainer Contact: | aberdnikov@gmail.com (Alexey Berdnikov) |
Package Create Date: | 2016-08-04 |
Package Last Update: | 2018-08-09 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-19 03:25:08 |
Package Statistics | |
---|---|
Total Downloads: | 729 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 2 |
Total Forks: | 0 |
Total Open Issues: | 0 |
Генератор массива правил валидации
##Задачи, которые решает пакет:
Покажем использование на примере 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. Сгенерируем сам request
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' => 'Мы настаиваем на заполнении этого поля'
];
###Голова - не чердак и не нужно хранить в ней ненужные вещи! Доверьте эти вещи автокомплиту!