Eloquent aslında CodeIgniter'daki model mantığından biraz daha fazlasını içeriyor.
MVC ve CI mantığı çerçevesinde düşünürsek, yapılan işlem sürekli olarak şudur; bir controller sınıfı, bir model sınıfı ve view dosyaları ile ilgili tabloya kayıt yapılır veya kayıtlar çeker.
CI için örnek vermek gerekirse;
Controller : User
Model : User_model
Tablo : users
View : register, login, update, vs.
Bir başka örnek;
Controller : Item
Model : Item_model
Tablo : items
View : create, delete, update, vs.
Yukarıdaki örneklerde de görüldüğü gibi yapılan işlem hep CRUD'dur (Create-Read-Update-Delete). Ayrıca isimler de hep birbirinin çoğulu veya benzer seçilir.
Laravel bu benzerlikten ve monotonluktan yola çıkarak, isimlendirmeleri onun istediği şekilde yaparsanız bir "save" fonksiyonu ile kayıt işlemini veya update işlemini yapmanızı sağlıyor veya bir "find" fonksiyonu ile kayıtları çekmenizi sağlıyor. Save fonksiyonu ve find fonksiyonu sadece birer örnektir ve Eloquent sınıfının içinde zaten olan bir fonksiyonlardır. Sizin ayrıca kayıt işlemini yapan model fonksiyonunu yazmanıza gerek yoktur. Aslında ORM'ye de biraz değinmek gerekir ama şu an pek vaktim yok ve o konuda çokta yetkin sayılmam.
Fakat bu anlattıklarım sizin codeigniter'da bahsettiğiniz işlemleri yapmanıza engel şeyler değildir.
Category isimli bir Eloquent sınıfı ile Users tablosuna kayıt yapabilir veya kayıtları çekebilirsiniz.
Bir de örnek vereyim;
class Category extends Eloquent {
public function userRegister($user)
{
// Şifreyi şifrele
$user['password'] = Hash::make($user['password']);
// Eklemeye çalış
$userId = DB::table('users')->insertGetId($user);
if(!$userId)
{
// Eklenemedi
return FALSE;
}
// Eklendi
return TRUE;
}
}
Yukarıdaki Eloquent sınıfının fonksiyonlarını şu şekilde yeni bir nesne oluşturarak kullanabilirsiniz;
// --> herhangi bir controller dosyasının içi
// Model
$categoryModel = new Category;
// Eklemeye çalış
$categoryModel->userRegister($user);
Bu noktada query builder çok işinize yaracaktır :
http://laravel.com/docs/queries
Sonuç, bahsettiğiniz şekilde bir Eloquent sınıfı tablo ismi istiyor ama vermek zorunda değilsiniz. Verirseniz yapacağınız işlemleri hızlandırırsınız.
Yanlış bilgi verdiysem affola, zaten diğer arkadaşlar düzeltirler. İyi çalışmalar.