Sistem notifikasi adalah fitur penting dalam hampir setiap aplikasi web modern — mulai dari pemberitahuan pesanan masuk, verifikasi email, hingga peringatan aktivitas akun. Laravel memiliki sistem notifikasi bawaan yang sangat fleksibel, mendukung berbagai channel seperti email, database, SMS, dan Slack. Dalam tutorial ini, kita akan fokus pada dua channel paling umum: database dan email.
Persiapan: Tabel Notifikasi Database
Untuk notifikasi channel database, Laravel membutuhkan tabel khusus. Buat dengan perintah:
php artisan make:notifications-table
php artisan migrate
Ini akan membuat tabel notifications yang menyimpan notifikasi dalam format JSON.
Membuat Kelas Notifikasi
Buat kelas notifikasi menggunakan Artisan:
php artisan make:notification OrderPlaced
File akan dibuat di app/Notifications/OrderPlaced.php. Edit file tersebut:
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class OrderPlaced extends Notification implements ShouldQueue
{
use Queueable;
public function __construct(
protected array $orderData
) {}
// Tentukan channel yang digunakan
public function via(object $notifiable): array
{
return ['database', 'mail'];
}
// Konten untuk email
public function toMail(object $notifiable): MailMessage
{
return (new MailMessage)
->subject('Pesanan Kamu Berhasil Dibuat!')
->greeting('Halo, ' . $notifiable->name . '!')
->line('Pesanan kamu dengan nomor #' . $this->orderData['order_number'] . ' telah berhasil kami terima.')
->line('Total pembayaran: Rp ' . number_format($this->orderData['total'], 0, ',', '.'))
->action('Lihat Pesanan', url('/orders/' . $this->orderData['order_id']))
->line('Terima kasih telah berbelanja!');
}
// Konten untuk database
public function toDatabase(object $notifiable): array
{
return [
'order_id' => $this->orderData['order_id'],
'order_number' => $this->orderData['order_number'],
'total' => $this->orderData['total'],
'message' => 'Pesanan #' . $this->orderData['order_number'] . ' berhasil dibuat.',
];
}
}
Artikel ini ditampilkan sebagian. Untuk pembahasan selengkapnya, beserta contoh dan langkah detailnya, Anda dapat membacanya pada sumber aslinya:
Cara Membuat Notifikasi di Laravel (Database & Email)
Tutorial pemrograman dan tools developer lainnya juga tersedia di dhiecoderweb.com.
Top comments (0)