Метод route
Метод route класса Notification применяется для указания способа
доставки уведомления конкретному получателю. Первым параметром
передаётся канал доставки, вторым - адрес получателя.
Метод используется для отправки уведомлений через различные
каналы, такие как mail, database, broadcast, и другие.
Синтаксис
<?php
use Illuminate\Support\Facades\Notification;
Notification::route($channel, $recipient)->send($notifiable, $notification);
?>
Параметр $channel указывает на канал доставки (например, 'mail', 'database').
Параметр $recipient - это адрес или идентификатор получателя,
который зависит от используемого канала.
Пример
Давайте отправим уведомление на почту пользователя с адресом 'user@example.com':
<?php
use Illuminate\Support\Facades\Notification;
use App\Notifications\WelcomeNotification;
$res = Notification::route('mail', 'user@example.com')
->send(new WelcomeNotification());
echo $res;
?>
Результат выполнения кода:
"Notification sent successfully"
Пример
Давайте отправим уведомление через несколько каналов одновременно для одного пользователя:
<?php
use Illuminate\Support\Facades\Notification;
use App\Notifications\OrderShippedNotification;
use App\Models\User;
$user = User::find(1);
$res = Notification::route('mail', 'user@example.com')
->route('database', $user->id)
->route('broadcast', $user->id)
->send(new OrderShippedNotification());
echo $res;
?>
Результат выполнения кода:
"Notification sent through multiple channels"
Пример
Давайте отправим уведомление нескольким получателям по электронной почте:
<?php
use Illuminate\Support\Facades\Notification;
use App\Notifications\InvoicePaidNotification;
$recipients = ['user1@example.com', 'user2@example.com', 'user3@example.com'];
$res = Notification::route('mail', $recipients)
->send(new InvoicePaidNotification());
echo $res;
?>
Результат выполнения кода:
"Notification sent to multiple recipients"