Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

Merhaba,

Laravel 9.x versiyonunda mutators dökümantasyonunu inceledim.
Örneğin direkt kullanıcının $user->first_name erişirken arkaplanda baş harfini büyütebilme attribute tanımlama gibi fakat burada get ve set gibi iki ayrı özellik var.

protected function firstName(): Attribute
{
    return Attribute::make(
        get: fn ($value) => ucfirst($value),
        set: fn ($value) => strtolower($value),
    );
}

Bu kısmı sadece get ile de kullanabiliyorum ve set olan kısmın ne yaptığını anlayamadım. Bilgisi olan var mı?

  • mgsmus bunu yanıtladı.
  • gundogduyakici get accessor, model serialize edilirken özelliğe uygulanacak işlem; set ise mutator, özellik kaydedilirken uygulanacak işlem. Eski hali ile şu şekilde (ki hala geçerli ama siz yeni olana adapte olmaya çalışın):

    // get
    public function getFirstNameAttribute($value)
    {
        return ucfirst($value);
    }
    
    // set
    public function setFirstNameAttribute($value)
    {
        $this->attributes['first_name'] = strtolower($value);
    }

    Bunu tek bir yöntemde yapmış oluyorsunuz.

    gundogduyakici get accessor, model serialize edilirken özelliğe uygulanacak işlem; set ise mutator, özellik kaydedilirken uygulanacak işlem. Eski hali ile şu şekilde (ki hala geçerli ama siz yeni olana adapte olmaya çalışın):

    // get
    public function getFirstNameAttribute($value)
    {
        return ucfirst($value);
    }
    
    // set
    public function setFirstNameAttribute($value)
    {
        $this->attributes['first_name'] = strtolower($value);
    }

    Bunu tek bir yöntemde yapmış oluyorsunuz.