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.