SQL Yazmadan SQL Kullanmak
Merhaba dostlar! Ben Uğurcan. 5. Gündeyiz ve işler iyice keyifli hale geliyor.
Dün veritabanı tablolarımızı oluşturduk. Peki bunlara veri eklemek veya çekmek için uzun uzun SELECT * FROM clients WHERE... gibi SQL sorguları mı yazacağız? Hayır.
Laravel'in süper gücü Eloquent ORM devreye giriyor. Veritabanındaki tabloları birer "PHP Nesnesi" gibi yöneteceğiz.
Adım 1: Model Nedir?
Model, veritabanındaki tablonuzun Temsilcisidir.
- clients tablosunun temsilcisi -> Client modelidir.
- projects tablosunun temsilcisi -> Project modelidir.
Laravel'de Model isimleri Tekil, Tablo isimleri Çoğul olur. Bu kurala uyarsanız Laravel her şeyi otomatik halleder.
Adım 2: Model Oluşturma
Hadi Müşteri tablomuz için temsilcimizi oluşturalım. Terminali açın:
php artisan make:model Client
app/Models/Client.php dosyasını açın. Şu an içi boş, ama arkada büyük bir güç var. İçine "Toplu Atama" (Mass Assignment) güvenliği için şu satırı ekleyelim:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Client extends Model
{
// Veritabanına toplu olarak eklenebilecek sütunları belirtiyoruz (Güvenlik için şart)
protected $fillable = ['name', 'email', 'phone', 'budget'];
}
Adım 3: Tinker ile Test Sürüşü
Henüz bir formumuz yok ama kodlarımızın çalışıp çalışmadığını test edebiliriz. Laravel'in Tinker adlı bir test konsolu vardır.
Terminale şunu yazın:
php artisan tinker
Açılan ekranda şu PHP kodunu yazıp Enter'a basın:
App\Models\Client::create(['name' => 'Ahmet Yılmaz', 'email' => 'ahmet@mail.com', 'budget' => 5000]);
Ekrana oluşturulan veriyi bastıysa tebrikler! Tek satır SQL yazmadan veritabanına kayıt eklediniz. Çıkmak için exit yazabilirsiniz.
Adım 4: Git Commit
Modellerimizi oluşturduk, güvene alalım.
git add . git commit -m "Gün 5: Client modeli oluşturuldu ve fillable alanları tanımlandı" git push
🎯 GÜNÜN GÖREVİ (Challenge)
Sıra sende!
- Terminalden Project (Proje) modelini oluştur.
- projects tablosundaki sütunları (title, description, status vb.) $fillable dizisine ekle.
- Tinker'ı aç ve App\Models\Project::create(...) komutuyla veritabanına sahte bir proje ekle.
- phpMyAdmin'den projects tablosunu kontrol et, veriyi gördüysen ekran görüntüsünü veya yorumunu paylaş: "SQL bitti, yaşasın Eloquent!"