Hướng dẫn rule php
Giới thiệuChà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ư Show 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 ObjectsBước 1: Tạo View Ở đây mình đã tạo sẵn một view với 2 trường là Text và Number
Bước 2: Tạo Controller, Route Chúng ta sẽ tạo controller
Tiếp theo, chúng ta tạo 2 Route trong file
Bước 3: Validation Ở đây mình sử dụng Form Request để validate dữ liệu. Tạo Form Request với tên là
Sau khi chạy lệnh bạn sẽ nhận được file Sau đó, bạn thêm đoạn code ở dưới vào file (bạn nhớ
Sử dụng Khai báo
sử dụng
Sử dụng
Bây giờ bạn đã có một validation đơn giản. Tuy nhiên ở đây, nếu mình muốn trường text chỉ nhận một chuỗi IN HOA thì như thế nào? Để giải quyết việc này, chúng ta sử dụng Custom Validate Rules bằng Rule Object của Laravel. Tiếp tục đến bước 4 nào. Bước 4: Tạo Rule Object Vấn đề đặt ra: Trường text chỉ nhận một chuỗi IN HOA Tạo một Rule Object với tên là
Sau khi chạy lệnh bạn sẽ nhận được file
*Ở đây một Rule Object sẽ có 2 phương thức là
Sử dụng Khai báo sử dụng
Gọi UppercaseRule trong phương thức
Thật đơn giản để tạo một Rule Custom với Rule Object phải không nào. Tương tự như trên, bạn có thể tạo ra các Rule mà bạn mong muốn rồi đấy. Tiếp theo chúng ta sẽ tìm hiểu thêm một cách nữa để tạo một Rule Custom. Custom Validate Rules với ClosuresBước 1: Tạo View, Controller, Route: Mình sẽ sử dụng lại view, controller, route của ví dụ trên. Bước 2: Tạo Rule với Closure: Vấn đề đặt ra: Ở đây mình muốn trường number chỉ nhận các số chia hết cho 5. Bạn chỉ cần thêm đoạn code ở dưới vào phương thức
*Ở đây: chúng ta sẽ sử dụng một Closure trong mảng các rule của trường number để tạo một Rule Custom thay vì sử dụng một Rule Object để tạo. Closure này sẽ nhận 3 tham số là:
Đơn giản phải không nào. Với Closure sẽ cho phép chúng ta tạo nhanh một Rule Custom hơn so với Rule Object. Tùy vào ứng dụng của bạn mà chọn cách thích hợp nhé. Kết luậnQua bài này mình đã giới thiệu với các bạn 2 cách để tạo một Rule Custom trong Laravel 5.6. Hy vọng các bạn sẽ thích bài viết của mình. Mình cũng chỉ vừa tiếp cận với Laravel thôi nên bài viết có gì sơ sót mong mọi người bỏ qua. (hehe) Tham khảohttps://laravel.com/docs/5.6/validation#using-rule-objects https://laravel.com/docs/5.6/validation#using-closures |