Route Parameters
Required Parameters
Đôi khi bạn cần control
được các thành phần của URI trong route
của bạn. Ví dụ bạn có thể cần truy cập dữ liệu user's ID
từ URL. Bạn có thể định nghĩa một route với tham số như sau:
Route::get('user/{id}', function ($id) { return 'User '.$id; });
Bạn có thể định nghĩa nhiều tham số trong route:
Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) { // });
Các tham số route
luôn được đặt trong cặp ngoặc {}
, và nó chỉ nên chứa các kí tự, không nên chứa kí tự -
. Trong trường hợp cần sử dụng kí tự -
, sử dụng dấu _
để thay thế. Các tham số này được injected
vào trong callbacks/controller
theo thứ tự tương ứng.
Optional Parameters
Đôi khi bạn cần tạo một tham số route, nhưng tham số này có thể là tùy chọn (có/không). Bạn có thể thực hiện điều này bằng cách đặt ?
sau tên tham số. Để chắc chắn chúng ta truyền cho biến route này một giá trị mặc định:
Route::get('user/{name?}', function ($name = null) { return $name; }); Route::get('user/{name?}', function ($name = 'John') { return $name; });
Regular Expression Constraints
Bạn có thể constrain
định dạng các tham số route của bạn bằng cách sử dụng phương thức where
trong một route instance
. Phương thức này có 2 đối số là tên của tham số và biểu thức regular expression
ràng buộc tham số này.
Route::get('user/{name}', function ($name) { // })->where('name', '[A-Za-z]+'); Route::get('user/{id}', function ($id) { // })->where('id', '[0-9]+'); Route::get('user/{id}/{name}', function ($id, $name) { // })->where(['id' => '[0-9]+', 'name' => '[a-z]+']); Xem thêm