Validation
Khởi Tạo Xác Thực
Để xác thực cho form bạn cần thêm quy tắc xác thực vào field khi khởi tạo,
Quy tắc xác thực được tạo bằng đối tượng SkillDo\Validate\Rule:
use SkillDo\Validate\Rule;
$form = new Form();
$form->text('myField', [
'label' => 'My Field',
'validations' => Rule::make()->notEmpty()
]);
Xác Thực
Xác thực bằng form
Để xác thực các request của một form đã hợp lệ hay chưa bạn sử dụng phương thức validate của class SkillDo\Http\Request.
Phương thức validate của request nhận vào một đối số có thể là đối tượng Form, FormAdmin hoặc SkillDo\Validate\Rule và trả về đối tượng SkillDo\Validate\Validate
use SkillDo\Validate\Rule;
//Tạo form
$form = new Form();
$form->text('myField', [
'label' => 'My Field',
'validations' => Rule::make()->notEmpty()
]);
//Xác thực
$request = request();
$validate = $request->validate($form);
Để kiểm tra request đã hợp lệ hay chưa bạn có thể sử dụng phương thức fails, nếu trả về true tức có request không hợp lệ, hoặc passes (ngược lại với fails)
$validate = $request->validate($form);
if($validate->fails()) {
//todo fail validation
}
Để lấy danh sách message lỗi khi xác thực bạn sử dụng phương thức error, phương thức sẽ trả về một đối tượng là SKD_Error
$validate = $request->validate($form);
if($validate->fails()) {
$errors = $validate->errors();
}
Xác thực không form
Hoặc bạn có thể tạo validate mà không cần form bằng cách sử dụng phương thức validate của SkillDo\Http\Request hoặc make của SkillDo\Validate\Validate.
use SkillDo\Validate\Validate;
use SkillDo\Validate\Rule;
$request = request();
$validate = $request->validate([
'username' => Rule::make('Tên đăng nhập')->notEmpty(),
'password' => Rule::make('Mật khẩu')->notEmpty(),
]);
if($validate->fails()) {
$errors = $validate->errors();
}
hoặc
use SkillDo\Validate\Validate;
use SkillDo\Validate\Rule;
$request = request();
$validate = Validate::make($request->all(), [
'username' => Rule::make('Tên đăng nhập')->notEmpty(),
'password' => Rule::make('Mật khẩu')->notEmpty(),
])->validate();
if($validate->fails()) {
$errors = $validate->errors();
}
Các Quy Tắc Xác Thực
alpha
Trường được xác thực phải hoàn toàn là các ký tự chữ cái Unicode.
Rule::make()->alpha();
alphaDash
Trường được xác thực phải hoàn toàn là các ký tự chữ (a-z, A-Z), số (0-9), dấu gạch ngang (-) và dấu gạch dưới (_).
Rule::make()->alphaDash();
alphaNum
Trường được xác thực phải hoàn toàn là các ký tự chữ (a-z, A-Z) và số (0-9).
Rule::make()->alphaNum();
alphaSpaces
Trường được xác thực phải hoàn toàn là các ký tự chữ và dấu cách.
Rule::make()->alphaSpaces();
notEmpty
Kiểm tra xem giá trị input có phải là chuỗi rỗng không
Tham số:
| Params | Type | Description | Default |
|---|---|---|---|
| $trim | bool | Nếu true value sẽ được lượt bỏ khoản trắng trước khi kiểm tra | true |
Rule::make()->notEmpty(true);
Between
Kiểm tra xem giá trị đầu vào có nằm giữa (đúng hay không) hai số đã cho.
Giá trị đầu vào có thể là
- Chuỗi (string) : dựa trên độ dài (khi đi kèm điều kiện xác thực
string) - Số (number) : dựa trên độ lớn (khi đi kèm điều kiện xác thực
numerichoặcinteger) - Mãng (array) : dựa trên số lượng phân tử
Tham số:
| Params | Đối số | Type | Description | Default |
|---|---|---|---|---|
| $min | int | Giá trị nhỏ nhất field cần đáp ứng | ||
| $max | int | Giá trị lớn nhất field có thể nhận vào | ||
| $equal | bool | Nếu true cho phép giá trị cần so sánh được phép bằng nhau | true |
Rule::make()->between(int $min, int $max, bool $equal);
color
Xác thực màu ở các định dạng khác nhau
Tham số:
| Params | Type | Description | Default |
|---|---|---|---|
| $types | array | Loại mã màu (rgb, rgba, hex, keyword), | rgb, rgba, hex, keyword |
Rule::make()->color(['rgb', 'hex']);
Kiểu các loại được hỗ trợ:
| Type | Ví dụ |
|---|---|
| hex | #0000FF, #00F |
| rgb | rgb(255, 255, 255) |
| rgba | rgba(255, 255, 255, 1) |
| keyword | transparent, red |
colorRGB
Xác thực màu ở các định dạng rgb như rgb(255, 255, 255)
Rule::make()->colorRGB();
colorRGBA
Xác thực màu ở các định dạng rgba như rgba(255, 255, 255, 1)
Rule::make()->colorRGBA();