İçeriğe atla

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.

Görünümler ve Şablonlar →