Нотификации / уведомления в laravel

laravel

Почти в каждом приложении, которое мы разрабатываем, нам нужно отправить какое-то уведомление. Laravel поставляется с очень хорошим адаптивным шаблоном для электронных писем, который мы используем много раз, не меняя большую его часть.

Основы

Создать уведомление так же просто, как выполнить следующую команду

php artisan make:notification InvoicePaid

Это создаст файл в папке “app/notifications”.

Для отправки уведомления мы используем этот код

Notification::send($users, new InvoicePaid($invoice));
// или
$user->notify(new InvoicdPaid($invoice);

MailMessage

Основная структура и функциональность, которые мы используем большую часть времени, таковы.


/**
 * Get the mail representation of the notification.
 *
 * @param  mixed  $notifiable
 * @return \Illuminate\Notifications\Messages\MailMessage
 */
public function toMail($notifiable)
{
    $url = url('/invoice/'.$this->invoice->id);

    return (new MailMessage)
                ->greeting('Hello!')
                ->line('One of your invoices has been paid!')
                ->action('View Invoice', $url)
                ->line('Thank you for using our application!');
}

Возможно, вы уже знаете, но мы можем публиковать HTML-и текстовые ресурсы.


php artisan vendor:publish --tag=laravel-notifications

// и

php artisan vendor:publish --tag=laravel-mail

Советы и рекомендации

В прошлом разделе мы рассмотрели, что является основной нормальной ситуацией создания уведомления по электронной почте.

Давайте рассмотрим все опции, которые предоставляет MailMessage, и как их использовать.

  • greeting(string $text)
  • salutation(string $text)
  • line(\Illuminate\Contracts\Support\Htmlable / string|array $text)
  • success()
  • error()
  • level(‘info’) // ‘info’, ‘success’, ‘error’
  • subject(string $text)
  • action(string $text, string $url)

Пример


/**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->subject('Lorem ipsum')
                    ->greeting('Greeting Victor Yoalli!')
                    ->salutation(new HtmlString('<strong>Salutation</strong> Victor Yoalli!'))
                    ->line('Line of Plain Text')
                    ->with(new HtmlString('<b>new HtmlString</b>("using with.")'))
                    ->action('Notification Action', url('/'))
                    ->line(new HtmlString(‘<b>new HtmlString</b>("using <i>line</i>.")'))
                    ->line(['array of elements:[','uno','dos','tres',']using line'])
                    ->level('info')
                    ->error()
                    ->success()
                    ->line('Thank you for using our application!');
    }

Как вы можете видеть в результате:

  • функция subject() не отображается, потому что это тема электронной почты.
  • greeting () всегда будет отображаться в начале независимо от того, где вы вызываете эту функцию.
  • salutation() похоже на приветствие, но оно будет показано в конце.
  • line () принимает 3 типа данных: string, HtmlString и array (), я использую три случая в этом примере.
  • with() аналогичен строке()
  • action() печатает кнопку вызова действия, и она может быть только одной. Если вы попытаетесь добавить больше одного, то появится последний.
  • error() изменит красный цвет, success() на зеленый кнопки action (), по умолчанию синий, который такой же, как если бы вы использовали level (‘info’).
  • level() имеет тот же эффект, за исключением того, что вам нужно указать “info”, “error” или “success”.

Результат

Надеюсь, это поможет. :)

Рейтинг
( Пока оценок нет )
Maxyc Webber/ автор статьи
Мне 35 лет. Опыт профессиональной разработки 15 лет. Занимаюсь разработкой и поддержкой корпоративных систем автоматизации бизнеса, а также высоконагруженными проектами. Мне нравится решать нестандартные проблемы бизнеса. Имею опыт формирования команд под проект, налаживания процесса разработки, коммуникации программистов и заказчиков. Есть опыт работы с зарубежными заказчиками (ОАЭ, Польша, Германия, Швейцария).
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.