Herkese merhaba,
Tanımladığımız bir accessorü, çağırırken devre dışı bırakmanın bir yolu var mı?
Örneğin aşağıdaki dokümantasyona uygun bir şekilde şöyle bir accessor tanımımız olsun;
https://laravel.com/docs/9.x/eloquent-mutators#defining-an-accessor
use Illuminate\Database\Eloquent\Casts\Attribute;
protected function price(): Attribute
{
return Attribute::make(
get: fn ($value) => '₺'.' '.number_format($value, 2, ',', '.')
);
}
Veritabanımda da sütunun ismi price ve bu şekilde formatladım.
Artık $model->price
diye çağırdığımda, formatlanmış bir şekilde gelecek.
Ben duruma göre bazı yerlerde ham hali gelsin istiyorum.
Aklıma bir kaç fikir geliyor ancak size de danışmak istedim.
İlk aklıma gelen doğrudan price'ı set etmek yerine;
use Illuminate\Database\Eloquent\Casts\Attribute;
protected function priceFormatted(): Attribute
{
return Attribute::make(
get: fn ($this->price) => '₺'.' '.number_format($this->price, 2, ',', '.')
);
}
şeklinde ayrı bir isim vermek ve $model->price_formatted
şeklinde çağırmak.
Siz ne önerirsiniz? Ya da gözümden kaçan daha pratik bir yol var mı?