Bài 5: Sử dụng RegEx kiểm tra các tham số truyền vào trong Route

Bài 5: Sử dụng RegEx kiểm tra các tham số truyền vào trong Route

1. RegEx (Regular Expression) là gì

Regular Expression hay còn gọi là biểu thức chính quy được dùng để xử lý chuỗi nâng cao thông qua biểu thức riêng của nó, những biểu thức này sẽ có những nguyên tắc riêng và bạn phải tuân theo nguyên tắc đó thì biểu thức của bạn mới hoạt động được. Ngoài cái tên gọi Regular Expression ra thì nó còn có thể viết tắt thành RegEx.

Nguyên tắc hoạt động của biểu thức RegEx là so khớp dựa vào khuôn mẫu, khuôn mẫu được xây dựng từ các quy tắc căn bản của biểu thức RegEx.

2. Sử dụng RegEx trong Route

Trong Laravel, bạn có thể định nghĩa một ràng buộc cho tham số truyền vào của mình bằng cách sử dụng phương thức where trong Route. Phương thức where lấy tên tham số và RegEx cho tham số đó. Bây giờ, hãy xác định ràng buộc cho tham số `{number}` để đảm bảo rằng chỉ có số được truyền vào cho hàm, controller.

Route::get('/table/{number}', function ($number) {
       echo $number;
})->where('number', '[0-9]+');

Trong đoạn code trên, tôi đã xác định một biểu thức chính quy cho Route. Bây giờ nếu người dùng cố gắng truyền một tham số không phải là số trên URL thì Laravel sẽ trả về lỗi NotFoundHttpException.

Các bạn có thể tham khảo thêm về RegEx tại đây

Post Comment