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 :
- broadcast
- return array
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.