Laravel Accessors & Mutators

Türkçe’de Erişimciler & Mutasyonerler olarak adlandırabiliriz.
Accessors kelimesini get olarak Mutators kelimesini ise set olarak düşünebilirsiniz veri okuma durumunda accessors ve ekleme ve güncelleme durumlarında mutators devreye girecek. Aşağıdaki örneklerde daha iyi anlayacaksınız.

Bir Erişimci Tanımlama

Bir erişimci tanımlamak için önce modelimize bir foksiyon tanımlamalıyız bu fonksiyon get ile başlayıp Attribute ile bitmesi gerekir ve camelCase olarak yazılmalı. Ama kullanırken snake_case olarak kullanmalıyız.

class User extends Model {
	public function getTamAdAttribute($value) {
		return "{$this->ad} {$this->soyad}";
	}
}

Yazdığımız erişimci User tablosunun ad ve soyad kolonlarını birleştirip yeni tanımladığım erişimci adı ile model altına tanımlayacaktır. Kullanırken snake_case olarak kullanmayı unutmayın.

// Erişimcimizi Kullanalım
$user = App\User::find(1);
$tamAd = $user->tam_ad; // Ahmet Bedir

Artık ad ve soyad sütunları kullanırken birleştirmek zorunda kalmayacağız. Erişimci yöntemi ile tam_ad özelliğini kullanabileceğiz.

Mutasyoner Tanımlama

Bir mutasyoner tanımlamak için önce modelimize bir foksiyon tanımlamalıyız bu fonksiyon set ile başlayıp Attribute ile bitmesi gerekir ve camelCase olarak yazılmalı. Ama kullanırken snake_case olarak kullanmalıyız.

public function setAdAttribute($deger) {
    $this->attributes["ad"] = ucfirst($deger);
}

Artık ad özelliğine bir değer eklendiğinde artık bu özelliği manipüle ederek ilk harfi büyük yapacaktır. Veri tabanına kaydedilirken manipüle edilmiş hali kaydedilir ve bu bazı durumlarda çok işinize yarayabilir.

$user = User::find(1);
$user->ad= "ramazan";
$user->save();

dd($user->ad); // Ramazan

PHP içinde yayınlandı

Bir cevap yazın