Laravel Routing ve Controller Kullanımı

Web Doktoru - Laravel Routing ve Controller Kullanımı

Laravel Routing ve Controller Kullanımı

İçindekiler

Bu bölümde Laravel Routing ve Controller Kullanımını inceleyeceğiz. Laravel, web uygulamalarında URL’leri yönetmek için güçlü bir yönlendirme (routing) sistemine sahiptir.

1️⃣ Laravel Routing Nedir?

Routing, bir URL’nin belirli bir işleve yönlendirilmesini sağlar. Laravel, yönlendirme işlemlerini routes/web.php dosyasında tanımlar. Aşağıda Laravel ile kullanılabilecek neredeyse tüm Route’ ları bulabilirsiniz. Öncelikle hızlı bir giriş yapalım sonra diğer rota türlerini inceleyelim.

Basit Bir Route Tanımlama

use Illuminate\Support\Facades\Route;

Route::get('/home', function () {
    return "Merhaba, Laravel!";
});

Bu kod, /home URL’sine gelen istekleri karşılar ve “Merhaba, Laravel!” mesajını döndürür.

Route Parametreleri Kullanımı

Route::get('/user/{id}', function ($id) {
    return "Kullanıcı ID: " . $id;
});

Bu route, /user/{id} şeklinde parametre alarak dinamik yönlendirme sağlar.

1️⃣ Temel GET Route

GET route’ları, tarayıcıdan bir sayfaya erişim sağlamak için kullanılır. Örneğin, ana sayfayı veya bir blog gönderisini görüntülemek için GET route’ları kullanılır.

Route::get('/', function () {
    return 'Ana Sayfa';
});

Route::get('/about', function () {
    return 'Hakkımızda Sayfası';
});
  • Örnek Kullanım:
    • https://localhost:8000/ → “Ana Sayfa” metnini döndürür.
    • https://localhost:8000/about → “Hakkımızda Sayfası” metnini döndürür.

2️⃣ Parametreli GET Route

URL’den dinamik parametreler almak için parametreli route’lar kullanılır. Örneğin, bir kullanıcının profil sayfasını görüntülemek için kullanıcı ID’sini URL’den alabilirsiniz.

Route::get('/user/{id}', function ($id) {
    return "Kullanıcı ID: $id";
});
  • Örnek Kullanım:
    • https://localhost:8000/user/5 → “Kullanıcı ID: 5” metnini döndürür.

3️⃣ İsteğe Bağlı Parametreli Route

Bazı durumlarda parametreler isteğe bağlı olabilir. Bu tür route’lar için parametrelerin sonuna ? eklenir ve varsayılan bir değer belirtilir.

Route::get('/user/{name?}', function ($name = 'Misafir') {
    return "Hoş geldiniz, $name!";
});
  • Örnek Kullanım:
    • https://localhost:8000/user → “Hoş geldiniz, Misafir!” metnini döndürür.
    • https://localhost:8000/user/Ahmet → “Hoş geldiniz, Ahmet!” metnini döndürür.

4️⃣ POST Route

POST route’ları, form gönderimleri gibi veri gönderme işlemleri için kullanılır. Örneğin, bir kullanıcı kaydı oluşturmak için POST route’u kullanılabilir.

Route::post('/register', function () {
    return 'Kullanıcı Kaydı Başarılı!';
});
  • Örnek Kullanım:
    • Bir formdan POST isteği gönderildiğinde, bu route çalışır ve “Kullanıcı Kaydı Başarılı!” mesajını döndürür.

5️⃣ PUT/PATCH Route

PUT ve PATCH route’ları, mevcut kaynakları güncellemek için kullanılır. PUT, kaynağın tamamını güncellerken, PATCH kısmi güncellemeler için kullanılır.

Route::put('/user/{id}', function ($id) {
    return "ID: $id kullanıcısı güncellendi.";
});

Route::patch('/user/{id}', function ($id) {
    return "ID: $id kullanıcısı kısmen güncellendi.";
});
  • Örnek Kullanım:
    • PUT https://localhost:8000/user/5 → “ID: 5 kullanıcısı güncellendi.” metnini döndürür.
    • PATCH https://localhost:8000/user/5 → “ID: 5 kullanıcısı kısmen güncellendi.” metnini döndürür.

6️⃣ DELETE Route

DELETE route’ları, bir kaynağı silmek için kullanılır. Örneğin, bir kullanıcıyı silmek için DELETE route’u kullanılabilir.

Route::delete('/user/{id}', function ($id) {
    return "ID: $id kullanıcısı silindi.";
});
  • Örnek Kullanım:
    • DELETE https://localhost:8000/user/5 → “ID: 5 kullanıcısı silindi.” metnini döndürür.

7️⃣ Resource Route (Kaynak Route)

Resource route’ları, CRUD (Create, Read, Update, Delete) işlemleri için kullanılan tüm route’ları otomatik olarak oluşturur. Örneğin, bir blog gönderisi yönetimi için resource route’ları kullanılabilir.

Route::resource('posts', PostController::class);

Bu tek satırlık kod, aşağıdaki route’ları otomatik olarak oluşturur:

HTTP MetoduURLController MetoduAçıklama
GET/postsindex()Tüm gönderileri listeler.
GET/posts/createcreate()Yeni gönderi oluşturma formu.
POST/postsstore()Yeni gönderi kaydeder.
GET/posts/{post}show()Belirli bir gönderiyi gösterir.
GET/posts/{post}/editedit()Gönderi düzenleme formu.
PUT/PATCH/posts/{post}update()Gönderiyi günceller.
DELETE/posts/{post}destroy()Gönderiyi siler.

8️⃣ Route Grupları

Route grupları, benzer özelliklere sahip route’ları gruplamak için kullanılır. Örneğin, tüm route’lar için bir önek veya middleware tanımlamak istediğinizde route grupları kullanılır.

Route::prefix('admin')->group(function () {
    Route::get('/dashboard', function () {
        return 'Admin Paneli';
    });

    Route::get('/users', function () {
        return 'Kullanıcı Listesi';
    });
});
  • Örnek Kullanım:
    • https://localhost:8000/admin/dashboard → “Admin Paneli” metnini döndürür.
    • https://localhost:8000/admin/users → “Kullanıcı Listesi” metnini döndürür.

9️⃣ Middleware ile Route Kullanımı

Middleware’ler, route’lara erişimden önce belirli işlemleri gerçekleştirmek için kullanılır. Örneğin, bir route’a sadece giriş yapmış kullanıcıların erişmesini sağlamak için auth middleware’i kullanılabilir. Sonraki dersimizde middleware için ayrıntılara değineceğiz.

Route::get('/profile', function () {
    return 'Profil Sayfası';
})->middleware('auth');
  • Örnek Kullanım:
    • Eğer kullanıcı giriş yapmışsa, https://localhost:8000/profile → “Profil Sayfası” metnini döndürür.
    • Eğer kullanıcı giriş yapmamışsa, giriş sayfasına yönlendirilir.

🔟 API Route’ları

API route’ları, RESTful API’lar oluşturmak için kullanılır. Bu route’lar, api.php dosyasında tanımlanır ve varsayılan olarak /api öneki ile çalışır.

Route::get('/users', function () {
    return response()->json(['users' => ['Ahmet', 'Mehmet', 'Ayşe']]);
});
  • Örnek Kullanım:
    • https://localhost:8000/api/users → JSON formatında kullanıcı listesini döndürür.

2️⃣ Laravel Controller Kullanımı

Controller’lar, iş mantığını yöneten sınıflardır. Tüm controller’lar app/Http/Controllers klasöründe bulunur.

Controller Oluşturma

Laravel’de yeni bir controller oluşturmak için şu komutu kullanabilirsiniz:

php artisan make:controller UserController

Controller İçerisinde Metot Tanımlama

Oluşturduğumuz controller içerisinde metodumuzu ekleyelim:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    public function show($id)
    {
        return "Kullanıcı ID: " . $id;
    }
}

Route ile Controller Kullanımı

Şimdi oluşturduğumuz UserController içindeki show metodunu bir route ile bağlayalım:

use App\Http\Controllers\UserController;

Route::get('/user/{id}', [UserController::class, 'show']);

Bu kod, /user/{id} URL’sine gelen isteği UserController içindeki show metoduna yönlendirir.

3️⃣ Resource Controller Kullanımı

Laravel, CRUD işlemlerini daha düzenli hale getirmek için resource controller kullanımı sunar.

Bir resource controller oluşturmak için şu komutu çalıştırabilirsiniz:

php artisan make:controller PostController --resource

Bu komut, Laravel’in standart CRUD metodlarını içeren bir controller oluşturur.

Daha sonra, aşağıdaki gibi resource route ekleyerek tüm CRUD işlemlerini tanımlayabilirsiniz:

Route::resource('posts', PostController::class);

Bu sayede aşağıdaki URL’ler otomatik olarak oluşturulur:

  • GET /posts → Tüm postları listele
  • GET /posts/{id} → Belirli bir postu göster
  • POST /posts → Yeni post oluştur
  • PUT/PATCH /posts/{id} → Postu güncelle
  • DELETE /posts/{id} → Postu sil

Sonuç

Bu bölümde Laravel’de Routing ve Controller kullanımını öğrendik. Bir sonraki adımda Laravel Middleware Kullanımı konusuna geçeceğiz.

Picture of Web Doktoru
Web Doktoru
Matematikçi, Adli Bilişim Uzmanı, Bil. Yük. Müh. Full Stack Developer
İlginizi Çekebilir
Web Doktoru - Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler Laravel, modern web uygulamalarında gerçek zamanlı bildirimler oluşturmak için güçlü araçlar sunar. WebSockets, Pusher, Laravel Echo ve Broadcasting gibi teknolojiler

Web Doktoru - Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler Laravel, modern web uygulamaları geliştirirken e-posta gönderimi ve bildirim sistemleri gibi ihtiyaçları kolayca karşılamak için güçlü araçlar sunar. Bu yazıda,

Whatsapp ile mesaj göndermek için tıklayın

Telefon ile sadece 09:00 - 18:00 saatleri arası ulaşabilirsiniz.