Web Doktoru - Laravel Routing ve Controller Kullanımı
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.
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.
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::get('/user/{id}', function ($id) {
return "Kullanıcı ID: " . $id;
});Bu route, /user/{id} şeklinde parametre alarak dinamik yönlendirme sağlar.
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ı';
});https://localhost:8000/ → “Ana Sayfa” metnini döndürür.https://localhost:8000/about → “Hakkımızda Sayfası” metnini döndürür.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";
});https://localhost:8000/user/5 → “Kullanıcı ID: 5” metnini döndürür.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!";
});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.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ı!';
});POST isteği gönderildiğinde, bu route çalışır ve “Kullanıcı Kaydı Başarılı!” mesajını döndürür.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.";
});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.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.";
});DELETE https://localhost:8000/user/5 → “ID: 5 kullanıcısı silindi.” metnini döndürür.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 Metodu | URL | Controller Metodu | Açıklama |
|---|---|---|---|
| GET | /posts | index() | Tüm gönderileri listeler. |
| GET | /posts/create | create() | Yeni gönderi oluşturma formu. |
| POST | /posts | store() | Yeni gönderi kaydeder. |
| GET | /posts/{post} | show() | Belirli bir gönderiyi gösterir. |
| GET | /posts/{post}/edit | edit() | Gönderi düzenleme formu. |
| PUT/PATCH | /posts/{post} | update() | Gönderiyi günceller. |
| DELETE | /posts/{post} | destroy() | Gönderiyi siler. |
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';
});
});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.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');https://localhost:8000/profile → “Profil Sayfası” metnini döndürür.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']]);
});https://localhost:8000/api/users → JSON formatında kullanıcı listesini döndürür.Controller’lar, iş mantığını yöneten sınıflardır. Tüm controller’lar app/Http/Controllers klasöründe bulunur.
Laravel’de yeni bir controller oluşturmak için şu komutu kullanabilirsiniz:
php artisan make:controller UserControllerOluş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;
}
}Ş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.
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 --resourceBu 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ı listeleGET /posts/{id} → Belirli bir postu gösterPOST /posts → Yeni post oluşturPUT/PATCH /posts/{id} → Postu güncelleDELETE /posts/{id} → Postu silBu bölümde Laravel’de Routing ve Controller kullanımını öğrendik. Bir sonraki adımda Laravel Middleware Kullanımı konusuna geçeceğiz.
İşletmeniz için dijital bir çözüm geliştirmek istediğinizde, karşılaşacağınız ilk soru genellikle budur: "Mobil uygulama mı…
Web sitesi hızı, 2026'da sadece bir teknik detay değil — doğrudan iş sonuçlarını etkileyen kritik…
Sosyal medya, 2026 itibarıyla 5.2 milyar aktif kullanıcıya ulaşmış durumda. Türkiye'de ise 65 milyondan fazla…
"İçerik kraldır" diyerek başlamak bu noktada klasik kaçabilir ama gerçek değişmiyor: doğru içerik, doğru kişilere,…
Google Ads, işletmelerin online görünürlüklerini artırmaları için en güçlü reklam platformlarından biri. Ancak bütçenizi doğru…
WordPress, dünyanın en popüler içerik yönetim sistemi (CMS) ve bu popülerlik, siber suçluların en sık…