• Uyarı

Trickler Laravelde Observer Classlar

impROS

Member
Yönetici
Laravel Artisan
#1
Laravelde observer classlar sayesinde bir modeli CRUD(Ekleme,Düzenleme,Güncelleme,Silme) işlemlerini takip ederek çeşitli işlemler yapabilirsiniz:

Kod:
class PostObserver
 {
    public function creating(Post $post)
     {
      $post->user_id= Auth::id();
     }
 }
 

mgsmus

New member
Yönetici
Laravel Artisan
#2
Arka planda çalışan bir olay (job, task, command vs) Post modeli oluşturduğunda observer'ı tetikleyecek ama o sırada Auth katmanı olmadığı için user_id her zaman boş kalacak. Şansınıza burada Auth::id() kullanılmış, null-safe bir yöntem olduğu için null dönecek ama Auth::user()->id kullanılsaydı hata alacaktı. Bunlara dikkat etmek lazım. Observer sınıfına ekstra parametre gönderilmediği için (Post modeline sonradan eklenebilir ama bu iyi bir yöntem değil) bu gibi durumlarda event/listener kullanmak daha uygun olacaktır.

Ayrıca her ne kadar örnek olsa da üstteki gibi yapılarda $user->posts()->create([...]) şeklinde kayıt oluşturmak daha sağlıklıdır.
 

impROS

Member
Yönetici
Laravel Artisan
#3
Arka planda çalışan bir olay (job, task, command vs) Post modeli oluşturduğunda observer'ı tetikleyecek ama o sırada Auth katmanı olmadığı için user_id her zaman boş kalacak. Şansınıza burada Auth::id() kullanılmış, null-safe bir yöntem olduğu için null dönecek ama Auth::user()->id kullanılsaydı hata alacaktı. Bunlara dikkat etmek lazım. Observer sınıfına ekstra parametre gönderilmediği için (Post modeline sonradan eklenebilir ama bu iyi bir yöntem değil) bu gibi durumlarda event/listener kullanmak daha uygun olacaktır.

Ayrıca her ne kadar örnek olsa da üstteki gibi yapılarda $user->posts()->create([...]) şeklinde kayıt oluşturmak daha sağlıklıdır.
Teşekkürler bilgilendirme için :)