Rotalama
Rotalar açıkça routes/web.php (HTML) veya routes/api.php (JSON) dosyasında tanımlanır. İlk eşleşen rota kazanır.
Basit closure rotası
app()->get('/hello/{name}', function (Request $request, array $params): Response {
return Response::html('<p>Merhaba, ' . e($params['name']) . '!</p>');
});
Controller rotası
İki öğeli bir dizi: [Sınıf::class, 'metod'].
app()->get('/projects', [ProjectController::class, 'index']);
app()->get('/projects/{id}', [ProjectController::class, 'show']);
app()->post('/projects', [ProjectController::class, 'store']);
HTTP metodları
app()->get(), app()->post(), app()->put(), app()->delete() kullanılabilir. get() otomatik olarak HEAD isteklerini de karşılar.
Parametreler
Süslü parantez {param} ile yakalanır ve handler'a $params dizisi olarak geçilir:
app()->get('/articles/{slug}', function (Request $request, array $params): Response {
$article = db()->table('articles')->where('slug', $params['slug'])->first();
return $article === null ? Response::notFound() : view('article.php', $article);
});
Middleware
Üçüncü parametre olarak middleware dizisi geçilebilir:
app()->post('/admin/settings', $handler, [new RequireAuth(auth())]);
State-changing rotalara (POST, PUT, DELETE) CSRF middleware'i otomatik eklenir.
Controller üretmek
bin/dizge make:controller Project
Üretilen controller app/Http/Controllers/ProjectController.php dosyasına yazılır. Container binding'ini routes/services.php dosyasına elle eklemelisiniz.