Action Callbacks

Laravel Nova 4’ün bu yeni özelliği, Action Callbacks, aksiyonlarınızın çalıştırılmasının ardından belirli bir kodu çalıştırmanızı sağlar. Bu sayede, aksiyonlarınız tamamlandığında kolayca raporlar oluşturabilir veya bildirimler gönderebilirsiniz.

Yukarıdaki örnekte, EmailAccountProfile adında bir aksiyonunuz olduğunu varsayalım. Bu aksiyon, seçili kaynaklarda (ör. kullanıcılar) çalıştırıldıktan sonra, Action::then yöntemi sayesinde belirli bir kod parçacığı çalıştırılacaktır.

Örnek olarak, aşağıdaki senaryoyu düşünelim:

  1. Yönetici, birden fazla kullanıcıya ait profilleri e-posta ile göndermek istiyor.
  2. Yönetici, bu kullanıcıları seçer ve EmailAccountProfile aksiyonunu çalıştırır.
  3. Aksiyon tamamlandığında, yöneticiye bir e-posta bildirimi gönderilmesi isteniyor.

İşte bu durumda Action Callbacks devreye girer. Aşağıda bu senaryoya uygun bir örnek bulunmaktadır:

public function actions(NovaRequest $request)
{
    return [
        (new Actions\EmailAccountProfile)->then(function ($models) {
            // Aksiyon tamamlandığında çalışacak kod parçacığı
            $models->each(function ($model) {
                // Burada, her bir model için ilave işlemler yapabilirsiniz. Örneğin, log kaydı eklemek.
            });

            // Aksiyon tamamlandığında yöneticiye bildirim gönderme işlemi
            Notification::send(auth()->user(), new ActionCompletedNotification());
        }),
    ];
}

Bu örnekte, EmailAccountProfile aksiyonu tamamlandığında, then metodu ile çalışacak kod parçacığı tanımlanmıştır. Bu kod parçacığı, her bir model için ilave işlemler yapabilir (örneğin, log kaydı eklemek) ve aksiyonun tamamlanması durumunda yöneticiye bir bildirim gönderebilir.

Umarım bu örnek, Action Callbacks özelliğinin işleyişini ve kullanımını daha iyi anlamanızı sağlar.