Giới thiệu
Chào các bạn, như các bạn cũng đã biết Laravel cung cấp cho chúng ta nhiều Rule để validation dữ liệu như required
, integer
, date
, min
, max
, unique
, .... Tuy nhiên nếu chúng ta muốn validation của mình theo các Rule mà Laravel không hỗ trợ thì sao? Để đáp ứng việc này, Laravel còn cho phép chúng ta Custom Validate Rules, tức là cho phép chúng ta định nghĩa các Rule mà chúng ta mong muốn. Ở các phiên bản Laravel < 5.5, việc Custom
Validate Rules được thực hiện bằng cách sử dụng phương thức extend
đặt trong phương thức boot[]
của AppServiceProvider
[//laravel.com/docs/5.6/validation#using-extensions].
Từ phiên bản 5.5, Laravel cung cấp thêm một cách Custom Validate Rules là sử dụng Rule Objects. Đến phiên bản 5.6, thì Laravel cung cấp thêm một cách nữa là sử dụng Closures. Trong bài viết này, chúng ta sẽ cùng tìm hiểu về 2 cách Custom Validate Rules mới nhất này nhé.
Custom Validate Rules với Rule Objects
Bước 1: Tạo View
Ở đây mình đã tạo sẵn một view với 2 trường là Text và Number
Custom Valdiation Rule on Laravel 5.6
Custom Valdiation Rule on Laravel 5.6
@csrf
Text
@if [$errors->has['text']]
{{ $errors->first['text'] }}
@endif
Number
@if [$errors->has['number']]
{{ $errors->first['number'] }}
@endif
Let's Go
Bước 2: Tạo Controller, Route
Chúng ta sẽ tạo controller ValidateRuleCustomController
như ở dưới: