Cara Mudah Menyimpan Table Notifikasi Pada Laravel

1. Membuat Table Notifikasi

Di sini kita perlu menambahkan table notifikasi pada database.

php artisan notifications:table

kemudian jalan kan migratenya.

php artisan migrate

2. Membuat Notifikasi Class

Pada langkah ini buat notifikasi class untuk menyimpan ke dalam database.

php artisan make:notification Application

Kemudian pada app\Notifications\Application.php ubah seperti ini.

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class Application extends Notification
{
    use Queueable;
    
    public $data;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct($data)
    {
        $this->data = $data;
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['database'];
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toDatabase($notifiable)
    {
        return $this->data;
    }
}

3. Memanggil Notifikasi Pada Controller

Pada langkah ini kita akan membuat perintah untuk menyimpan notifikasi pada controller.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Notifications\Application as ApplicationNotification;

class ApplicationController extends Controller
{
    public function store()
    {
        // setelah store pada application
        
        $user = \Auth::user();
        $user->notify(new ApplicationNotification(['title' => 'New Application', 'body' => 'Isi deskripsi application', 'link' => 'link application terbaru', 'image' => null]));
        
        // return pada application
    }
}

Catatan

Pada via notifikasi bisa kita tambahkan untuk keperluan lainnya diantaranya :

Jangan lupa untuk tambahkan class sesuai keperluan kita, misal via broadcast => toBroadCast($notifiable) dll.

Sekian untuk kali ini semoga bermanfaat :D untuk lebih lanjut bisa kunjungi link tersebut.