Laravel Nova 4.0’da, Batchable Actions özelliği sayesinde işlemleri toplu olarak gerçekleştirebilirsiniz. Bu özellik, Laravel’in job batching işlevselliğini kullanarak, aksiyonların tüm toplu işlemi tamamlandığında ek görevler gerçekleştiren geri çağrılar kaydetme yeteneği sunar.
Batchable Actions ile ilgili temel kavramları ve kullanımını örneklerle açıklamak için, aşağıdaki örneği inceleyelim:
İlk olarak, bir aksiyonun toplu işlem özelliği kullanabilmesi için withBatch
metodunu kullanmalısınız:
use Illuminate\Bus\Batch;
use Throwable;
public function withBatch(ActionFields $fields, PendingBatch $batch)
{
// Geri çağrılar ve işlemler
}
withBatch
metodu içerisinde, toplu işlemin durumuna göre farklı geri çağrılar tanımlayabilirsiniz:
then
– Tüm işler başarıyla tamamlandığında çağrılır.catch
– İlk toplu işlem hatası tespit edildiğinde çağrılır.finally
– Toplu işlem tamamlandığında çağrılır (başarılı veya başarısız).
Örnek olarak, tüm işler başarıyla tamamlandığında, seçili modellere erişmek için then
geri çağrısını kullanabilirsiniz:
$batch->then(function (Batch $batch) {
// Tüm işler başarıyla tamamlandı...
$selectedModels = $batch->resourceIds;
});
Bir işlemde başarısızlık tespit edildiğinde, catch
geri çağrısını kullanarak hatayı işleyebilirsiniz:
$batch->catch(function (Batch $batch, Throwable $e) {
// İlk toplu işlem hatası tespit edildi...
});
Ve toplu işlemin tamamlanmasından bağımsız olarak, finally
geri çağrısı kullanarak işlem sonrası kodlarınızı çalıştırabilirsiniz:
$batch->finally(function (Batch $batch) {
// Toplu işlem tamamlandı...
});
Batchable Actions özelliği, büyük miktarda veriyi işlemek veya aksiyonların tüm toplu işlemini izlemek istediğinizde kullanışlıdır.