Iman Sugirman

Iman Sugirman

Fullstack Developer, Software Engineer, Frontend Developer berpengalaman selama lebih dari 6 tahun
Laravel
Nodejs
Docker
Nextjs
React
Mongodb

Laravel Notification Menggunakan Delay Yang Diinginkan

28 Juli 2022
Laravel Notification Menggunakan Delay Yang Diinginkan
Cloud Server Untuk Laravel
Dapatkan Gratis $200 Untuk Deploy Laravel
Deploy Now

Laravel Notification menggunakan delay yang diinginkan dengan menjeda beberapa menit atau bisa menggunakan Carbon.

Dengan Menggunakan Carbon anda bisa menggunakan Notification di Laravel sesuai yang diinginkan, mari sekarang kita mulai.

Buat Notification Di Laravel

Buat Notifikasi dengan Mengirim Email dan Database

php artisan make:notification SendEmailNotification --markdown=email.notification

Lalu akan terbuat 2 file yaitu di folder App\Notifications dan di folder resources/views/email nah sekarang kita akan membuat Action untuk mengirimkan Notifikasi tersebut dengan menggunakan Controller

php artisan make:controller KirimNotificationController

Lalu buka file KirimNotificationController di folder App\Http\Controllers dan edit :

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Invoice; use App\Models\User; class KirimNotificationController extends Controller { public function kirim($id) { // Delay selama 10 Menit $delay = now()->addMinutes(10); // Delay Selama 10 Detik // $delay = now()->addSeconds(10); $invoice = Invoice::find($id) $user = User::find(1) $user->notify((new SendEmailNotification($invoice))->delay($delay)); } }

penjelasan bahwa dengan kode diatas adalah notifikasi akan dikirim dengan jeda waktu 10 menit menggunakan DateTime menggunakan Carbon atau now() disini bisa anda lihat Now Helper

Atau anda juga bisa menspesifikasikan beberapa notifikasi dengan delay yang berbeda di Laravel 9 :

$user->notify((new SendEmailNotification($invoice))->delay([ 'mail' => now()->addMinutes(5), 'sms' => now()->addMinutes(10), ]));

Bahkan anda juga bisa mendefinisikan delay di file SendEmailNotification dengan menambahkan function withDelay seperti ini :

/** * Determine the notification's delivery delay. * * @param mixed $notifiable * @return array */ public function withDelay($notifiable) { return [ 'mail' => now()->addMinutes(5), 'sms' => now()->addMinutes(10), ]; }

jangan lupa ketika anda membuat notification diatas maka harus di implementasikan ShouldQueue di file SendEmailNotification seperti berikut :

<?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Notification; class SendEmailNotification extends Notification { use Queueable; ... }

Menjadi seperti ini :

<?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Notification; class SendEmailNotification extends Notification implements ShouldQueue { use Queueable; ... }

Demikian tutorial Laravel Notification Menggunakan Delay Yang Diinginkan yang bisa saya share. Happy Coding...

Cloud Server Untuk Laravel
Dapatkan Gratis $200 Untuk Deploy Laravel
Deploy Now