Laravel'in Bilmediğiniz 10 Anlamlı Özelliği
Laravel zengin özelliklere sahip bir frameworkdür. Ancak mevcut tüm özellikleri resmi belgelerde bulamazsınız. İşte bilmediğiniz bazı özellikler.
1. Get Original Attributes
Bir Eloquent kaydını mutasyona uğrattıktan sonra getOriginal() öğesini çağırarak orijinal nitelikleri elde edebilirsiniz.
$user = App\User::first();
$user->name; //Ali
$user->name = "Metin"; //Metin
$user->getOriginal('name'); //Ali
$user->getOriginal(); //Original $user record
2. Modelin Değişip Değişmediğini Kontrol Edin
Modelin veya verilen özelliğin isDirty() kullanılarak değiştirilip değiştirilmediğini kontrol edin.
$user = App\User::first(); $user->isDirty(); //false $user->name = "Metin"; $user->isDirty(); //true
Belirli bir özelliğin değişip değişmediğini de kontrol edebilirsiniz.
$user->isDirty('name'); //true
$user->isDirty('age'); //false
3. Değiştirilen Özellikleri (Attributes) Alın (getChanges)
getChanges() kullanarak bir modelin değiştirilmiş niteliklerini öğelerini alabilirsiniz.
$user->getChanges()
//[
"name" => "Metin",
]
Not: Değişiklikler yalnızca modeli kaydederseniz veya değişiklikleri syncChanges() kullanarak senkronize ederseniz.
4. Özel deleted_at Sütunu
Varsayılan olarak Laravel, geçici silme işlemlerini delete_at sütununu kullanarak gerçekleştirir. delete_at özelliğini açıkça tanımlayarak bunu değiştirebilirsiniz.
class User extends Model
{
use SoftDeletes;
* The name of the "deleted at" column.
*
* @var string
*/
const DELETED_AT = 'is_deleted';
}
Veya bir erişimci tanımlayarak bu işlemi yapabilirsiniz.
class User extends Model
{
use SoftDeletes;
public function getDeletedAtColumn()
{
return 'is_deleted';
}
}
5. Modelleri ve ilişkileri kaydedin
Push() yöntemini kullanarak bir modeli ve ona karşılık gelen ilişkileri kaydedebilirsiniz.
class User extends Model
{
public function phone()
{
return $this->hasOne('App\Phone');
}
}
$user = User::first();
$user->name = "Ali";
$user->phone->number = '1234567890';
$user->push(); // Bu, DB'deki hem kullanıcı hem de telefon kaydını güncelleyecektir
6. Modeli Yeniden Yükleme
Fresh() kullanarak veritabanından yeni bir model örneğini yeniden yükleyin.
$user = App\User::first(); $user->name; // Ali // kullanıcı kaydı başka bir iş parçacığı tarafından güncellenir. örneğin: 'name' değiştirildi // Metin. $updatedUser = $user->fresh(); $updatedUser->name; // Metin $user->name; // Ali
7. Mevcut Modeli Yeniden Yükleyin
Refresh() işlevini kullanarak mevcut bir modeli veritabanından yeni değerlerle yeniden yükleyebilirsiniz.
$user = App\User::first(); $user->name; // Ali // kullanıcı kaydı başka bir iş parçacığı tarafından güncellenir. örneğin: 'name' değiştirildi // Metin. $user->refresh(); $user->name; // Metin
Not: refresh() aynı zamanda mevcut modelin yüklü ilişkilerini de güncelleyecektir
8. Modellerin Aynı Olup Olmadığını Kontrol Edin
is() işlevini kullanarak iki modelin aynı kimliğe sahip olup olmadığını ve aynı tabloya ait olup olmadığını belirleyin.
$user = App\User::find(1); $sameUser = App\User::find(1); $diffUser = App\User::find(2); $user->is($sameUser); // true $user->is($diffUser); // false
9. Bir Modeli Klonlayın
replicate() işlevini kullanarak bir modeli klonlayabilirsiniz. Modelin bir kopyasını yeni, var olmayan bir örneğe oluşturacaktır.
$user = App\User::find(1); $newUser = $user->replicate(); $newUser->save();
10. Find() Yönteminde Nitelikleri Belirtin
Find() veya findOrFail() yöntemlerini kullanırken, ikinci argüman olarak seçilecek nitelikleri belirleyebilirsiniz.
$user = App\User::find(1, ['name', 'age']); $user = App\User::findOrFail(1, ['name', 'age']);
Alakalı İçerikler
-
Laravel 13 Nedir? Tüm Yenilikler, Performans Artışları ve Detaylı İnceleme (2026) 5 Ay önce
Laravel ekosistemi her yıl olduğu gibi 2026’da da önemli bir güncelleme ile karşımıza çıktı. Laravel 13, önceki sürümlere kıyasla radikal değişiklikler sunmasa da, performans, modern PHP uyumu ve framework sadeleşmesi açısından oldukça kritik bir versiyon olarak öne çıkıyor.
-
React + Laravel Sanctum + MySQL ile Modern Web Uygulamaları Geliştirme 11 Ay önce
Günümüzde web uygulamaları sadece basit sayfalar sunmakla kalmıyor; gerçek zamanlı veri işleme, kullanıcı oturumu yönetimi, güvenlik ve ölçeklenebilirlik gibi birçok ihtiyacı karşılıyor.
-
CORS Yapılandırması için Laravel, Windows IIS, Linux Apache, NGIX Sistemlerinde Yapılması Gereken Ayarlar 2 Yıl önce
CORS (Cross-Origin Resource Sharing) hatası, bir web uygulamasının başka bir kaynaktan (domain, protokol veya port) kaynak isteği yapmaya çalıştığında ve bu isteğin karşı sunucu tarafından kabul edilmediğinde meydana gelir.
-
Laravel 11.x & 10.x CRUD Oluşturucu 2 Yıl önce
Laravel CRUD Generator v2.x paketinin güncellenmiş sürümü, uygulamalarınızın tek bir komutla geliştirilmesi için Bootstrap/Tailwind CSS'de Denetleyici, Model (anlamlı ilişkilerle) ve Görünümler sağlar ve üretir.
-
Laravel Sanctum ve JWT (JSON Web Tokens)'nin Kullanım Alanları, Kurulumları ve Aralarındaki Farklar 2 Yıl önce
Bir web uygulamasında uygulanın performansı kadar önemli bir diğer konuda uygulamanın güvenliğidir. Bu güvenlik laravel'in sunduğu ve kolaylıkla entegre edilebilen bazı yapılar ile sağlanabilir. Sanctum ve JWT bunlardandır.
-
Performansı Arttırmak İçin Lazy Loading ve Eager Loading Yöntemleri, Aralarındaki Fark 2 Yıl önce
Yazılım geliştirme dünyasında önemli bir yer tutan ve veritabanı performansını artırmak için kullanılan iki önemli kavram olan Lazy Loading ve Eager Loading yöntemleri nedir?
- Laravel
Tepkini Göster
- 6
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
Yorumlar
Sende Yorumunu Ekle