Route parameters are placeholders in a URI, written in braces, that capture segments of the URI and pass them to your closure or controller. Laravel passes them in order, so the arguments must follow the order of the placeholders.
// Required parameter
Route::get('/user/{id}', function ($id) {
return "User ID: $id";
});
// Optional parameter
Route::get('/hello/{name?}', function ($name = 'Guest') {
return "Hello, $name";
});
// Regular expression constraint
Route::get('/post/{id}', function ($id) {
//
})->where('id', '[0-9]+');
A required parameter like {id} must be present. An optional parameter adds a ?, and its argument needs a default value.
A parameter matches one segment, so it stops at a slash unless a where() constraint allows one. The where() method adds a regular expression constraint, and a URI that fails it gets a 404. Routes are matched in the order they are registered, so each example here uses its own URI.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
The diagram below the answer is the concept . Jump to it ↓