-
Notifications
You must be signed in to change notification settings - Fork 0
Routing
Laureano F. Lamonega edited this page Jul 17, 2026
·
2 revisions
$router->get('/users', [UserController::class, 'index']);
$router->post('/users', [UserController::class, 'store']);
$router->put('/users/{id}', [UserController::class, 'update']);
$router->delete('/users/{id}', [UserController::class, 'destroy']);$router->get('/posts/{slug}', fn (Request $r) => "Post: " . $r->get('slug'));
// With regex constraint:
$router->get('/users/{id:\d+}', [UserController::class, 'show']);Parameters are available via $request->get('param') or $request->route('param').
$router->match(['GET', 'POST'], '/form', [FormController::class, 'handle']);$router->get('/posts/{slug}', [PostController::class, 'show'])->name('posts.show');
// Generate URL:
$url = route('posts.show', ['slug' => 'hello-world']); // /posts/hello-world$router->group('/admin', function (Router $r) {
$r->get('/dashboard', [AdminController::class, 'dashboard'])->name('admin.dashboard');
$r->get('/users', [AdminController::class, 'users'])->name('admin.users');
}, ['App\Middleware\AuthMiddleware']);$router->get('/dashboard', [DashboardController::class, 'index'])->middleware(AuthMiddleware::class);$router->addMiddleware(App\Middleware\CsrfMiddleware::class);Middleware passed to group() is applied to all routes within the group.
use Antimonial\Middleware\MiddlewareInterface;
class AuthMiddleware implements MiddlewareInterface
{
public function handle(Request $request, callable $next): Response
{
if (!$request->header('Authorization')) {
return (new Response())->status(401)->body('Unauthorized');
}
return $next($request);
}
}