кодесурса
«Laravel

Laravel (5.7) Уведомления

script1adsense2code
script1adsense3code

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

Создание уведомления

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

php artisan make:notification TestMessage

И это создаст новый файл, расположенный в appNotificationsTestMessage.php со следующим содержанием:

<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
class TestMessage extends Notification
{
    use Queueable;
    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }
    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['mail'];
    }
    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->line('The introduction to the notification.')
                    ->action('Notification Action', url('/'))
                    ->line('Thank you for using our application!');
    }
    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}

Обратите внимание на метод via в приведенном выше коде. Здесь вы можете указать, как вы хотите, чтобы пользователь был уведомлен. В приведенном выше примере мы указываем, что мы хотим, чтобы пользователь был уведомлен по электронной почте:

return ['mail'];

Поскольку мы хотим, чтобы они получали уведомления по почте, наше уведомление будет запускать метод toMail (), когда вы отправляете уведомление пользователю.

Если вы хотите включить уведомления Slack, вы бы добавили 'slack' в метод via ():

return ['mail', 'slack'];

И тогда ваше уведомление вызовет метод toSlack ():

public function toSlack($notifiable)
{
    return (new SlackMessage)
                ->content('One of your invoices has been paid!');
}

Есть много других каналов уведомлений, о которых вы можете узнать в официальной документации Laravel:

https://laravel.com/docs/5.7/notifications

Отправка уведомления

Использование черты Notifiable в вашем классе User позволит вам легко отправлять уведомления пользователям:

<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
    use Notifiable;
}

После добавления этой черты вы можете запустить следующее:

$user->notify(new App\Notifications\TestMessage);

И этому конкретному пользователю будет отправлено уведомление TestMessage. Далее, если вы хотите отправить его всем своим пользователям, вы можете использовать фасад уведомлений следующим образом:

Notification::send($users, new App\Notifications\TestMessage);

Предыдущая: Laravel (5.7) Mail
Далее: Laravel (5.7) Разработка пакетов

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code