Sitemize hoşgeldiniz!  ::  Son eklenen yazı: Git’te “master” mı “main” mi? Bir kelimenin ardındaki hikâye  ::  Toplam 63 yazı  ::  Görüş ve önerileriniz için iletişim sayfasını kullanabilirsiniz.
» Menü
Anasayfa
Hakkımda
İletişim
» Kategoriler
› nostalji (8)
› laravel (7)
› php (5)
› web (3)
› agile (3)
› go (2)
› golang (2)
› api (2)
› redis (2)
› git (2)
› github (2)
› model (1)
» Arşiv
› Ekim 2025 (2)
› Temmuz 2025 (1)
› Nisan 2025 (3)
› Mart 2025 (5)
› Şubat 2025 (1)
› Ocak 2025 (43)
› Haziran 2011 (1)
› Kasım 2009 (1)
› Temmuz 2009 (1)
› Temmuz 2007 (1)
› Ocak 2007 (1)
› Kasım 2006 (1)
› Ekim 2006 (1)
› Ağustos 2006 (1)
Anasayfa » Yazılar » Laravel Model Controller
Laravel Model Controller
Yazan: Atilla Mutlu | Tarih: 09.10.2025 07:43 | Kategori: Laravel, Model, Controller

🧩 Model Dosyaları

app/Models/Department.php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;

class Department extends Model
{
    use HasFactory;

    protected $fillable = ['name'];

    // Bir departmanın birçok kullanıcısı olabilir
    public function users()
    {
        return $this->hasMany(User::class);
    }
}

app/Models/User.php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;

class User extends Model
{
    use HasFactory;

    protected $fillable = ['name', 'email', 'department_id'];

    // Kullanıcı bir departmana aittir
    public function department()
    {
        return $this->belongsTo(Department::class);
    }
}

⚙️ Controller

app/Http/Controllers/DepartmentController.php

namespace App\Http\Controllers;

use App\Models\Department;
use Illuminate\Http\Request;

class DepartmentController extends Controller
{
    // Tüm departmanları listele
    public function index()
    {
        $departments = Department::with('users')->get();
        return response()->json($departments);
    }

    // Yeni departman oluştur
    public function store(Request $request)
    {
        $validated = $request->validate([
            'name' => 'required|string|max:100',
        ]);

        $department = Department::create($validated);

        return response()->json($department, 201);
    }

    // Belirli bir departmanı göster
    public function show($id)
    {
        // 👇 Burada findOrFail kullanıyoruz
        $department = Department::with('users')->findOrFail($id);

        return response()->json($department);
    }

    // Departmanı sil
    public function destroy($id)
    {
        $department = Department::findOrFail($id);
        $department->delete();

        return response()->json(['message' => 'Departman silindi.']);
    }
}

🛣️ Route Tanımı

routes/api.php

use App\Http\Controllers\DepartmentController;

Route::apiResource('departments', DepartmentController::class);

🧠 Kısa Özet

Metot Açıklama
find() ID ile arar, bulamazsa null döner.
findOrFail() ID ile arar, bulamazsa 404 fırlatır.
with('users') İlişkili kullanıcıları eager load eder.

💬 Gerçek kullanım örneği:

GET /api/departments/5

Eğer id = 5 yoksa:

{
  "message": "No query results for model [App\\Models\\Department] 5"
}

ve HTTP 404 döner.


« Geri dön | Yorum gönder | Yukarı ↑
» Hakkımda
A
Atilla Mutlu
Yazılım Geliştirici

Devamını oku »
» Son Yazılar
› Git’te “master” mı “main” mi? Bir kelimenin ardındaki hikâye
› Laravel Model Controller
› PostgreSQL Mini‑Kılavuz
› ReactJS Rehberi
› Spatie Laravel Paketleri
» İstatistik
Ziyaretçi Sayısı
036376
Toplam yazı: 63
PHPpowered SQLiteinside Firefoxile daha iyi CSStables ♥
Bu site en iyi 1024x768 çözünürlükte görüntülenir.
Copyright © 2006-2026
Anasayfa | Hakkımda | İletişim | Yukarı ↑
Bu sayfa 0,018 saniyede oluşturuldu.