DEV Community

Dhiecoderweb
Dhiecoderweb

Posted on • Originally published at dhiecoderweb.com

Cara Membuat Notifikasi di Laravel (Database & Email)

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
Enter fullscreen mode Exit fullscreen mode

Ini akan membuat tabel notifications yang menyimpan notifikasi dalam format JSON.

Membuat Kelas Notifikasi

Buat kelas notifikasi menggunakan Artisan:

php artisan make:notification OrderPlaced
Enter fullscreen mode Exit fullscreen mode

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.',
        ];
    }
}
Enter fullscreen mode Exit fullscreen mode

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)