РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
842 of 1392 menu

Метод notify

Метод notify применяется к экземпляру модели Eloquent или вызывается статически через фасад Notification. Он предназначен для отправки уведомлений получателям. Первым параметром передаётся экземпляр класса уведомления, который реализует логику формирования письма. Вторым параметром можно указать каналы отправки, но по умолчанию используется канал 'mail'.

Метод поддерживает отправку как одному получателю, так и коллекции пользователей. Возвращает void, так как отправка происходит асинхронно через очередь.

Синтаксис

<?php $user->notify($notification); Notification::send($users, $notification); ?>

Пример

Отправим уведомление одному пользователю через экземпляр модели:

<?php namespace AppHttpControllers; use AppModelsUser; use AppNotificationsWelcomeNotification; class UserController extends Controller { public function sendWelcome(User $user) { $user->notify(new WelcomeNotification()); echo "Welcome notification sent"; } } ?>

Результат выполнения кода:

"Welcome notification sent"

Пример

Отправим уведомление нескольким пользователям через фасад Notification:

<?php namespace AppHttpControllers; use AppModelsUser; use AppNotificationsNewsletterNotification; use IlluminateSupportFacadesNotification; class UserController extends Controller { public function sendNewsletter() { $users = User::where('subscribed', true)->get(); Notification::send($users, new NewsletterNotification()); echo "Newsletter sent to " . $users->count() . " users"; } } ?>

Результат выполнения кода:

"Newsletter sent to 5 users"

Пример

Отправим уведомление с использованием метода notifyNow для немедленной отправки без очереди:

<?php namespace AppHttpControllers; use AppModelsOrder; use AppModelsUser; use AppNotificationsOrderShippedNotification; class OrderController extends Controller { public function ship(Order $order) { $user = User::find($order->user_id); $user->notifyNow(new OrderShippedNotification($order)); echo "Order shipped notification sent immediately"; } } ?>

Результат выполнения кода:

"Order shipped notification sent immediately"

Пример класса уведомления

Создадим класс уведомления, который реализует метод toMail для настройки email:

<?php namespace AppNotifications; use IlluminateBusQueueable; use IlluminateNotificationsNotification; use IlluminateContractsQueueShouldQueue; use IlluminateNotificationsMessagesMailMessage; class WelcomeNotification extends Notification implements ShouldQueue { use Queueable; public function via($notifiable) { return ['mail']; } public function toMail($notifiable) { return (new MailMessage) ->greeting('Hello ' . $notifiable->name) ->line('Welcome to our platform!') ->action('Get Started', url('/dashboard')) ->line('Thank you for joining us.'); } } ?>

Смотрите также

  • метод notifyNow,
    который отправляет уведомление немедленно без очереди
  • фасад Notification,
    который предоставляет статические методы для отправки уведомлений
  • класс MailMessage,
    который используется для построения email-писем в уведомлениях
  • метод send,
    который отправляет уведомления через фасад Notification
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить