GlosarioArquitectura

¿Qué es Notification?

Las Notifications en Laravel permiten enviar avisos a los usuarios a traves de multiples canales como email, SMS, Slack, bases de datos y notificaciones push desde una sola clase.

Notifications

El sistema de notificaciones de Laravel permite enviar avisos a traves de multiples canales desde una unica clase. Soporta email, SMS (via Vonage), Slack, base de datos y canales personalizados.

Crear una notificacion

php artisan make:notification OrderShipped
class OrderShipped extends Notification implements ShouldQueue
{
    use Queueable;

    public function __construct(
        private Order $order
    ) {}

    public function via(object $notifiable): array
    {
        return ['mail', 'database'];
    }

    public function toMail(object $notifiable): MailMessage
    {
        return (new MailMessage)
            ->subject('Tu pedido ha sido enviado')
            ->greeting('Hola ' . $notifiable->name)
            ->line('Tu pedido #' . $this->order->id . ' esta en camino.')
            ->action('Ver pedido', url('/orders/' . $this->order->id))
            ->line('Gracias por tu compra.');
    }

    public function toArray(object $notifiable): array
    {
        return [
            'order_id' => $this->order->id,
            'message' => 'Tu pedido ha sido enviado.',
        ];
    }
}

Enviar notificaciones

$user->notify(new OrderShipped($order));

// A multiples usuarios
Notification::send($users, new OrderShipped($order));

// Notificaciones bajo demanda (sin modelo)
Notification::route('mail', 'admin@example.com')
    ->notify(new OrderShipped($order));

Las notificaciones almacenadas en base de datos se pueden consultar facilmente con $user->notifications y $user->unreadNotifications.