Уведомления



Уведомления - это отличный способ информировать ваших пользователей о том, что происходит в вашем приложении. Например, они могут оповещать пользователя о завершении длительного процесса или приходе нового сообщения. В этом разделе мы покажем вам, как использовать их в вашем приложении.

Одноразовые сообщения

Flash-уведомление — это одноразовое сообщение, которое будет удалено при следующем обращении. Уведомления призваны информировать о непосредственно произошедшем событии, например сообщение о сохранении данных.

ORCHID имеет удобный вызов и отображение уведомлений поверх одноразовых flash-данных.

use Orchid\Support\Facades\Alert;

Alert::message('Welcome Aboard!');

Можно использовать более короткую запись:

alert('Message');

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

Alert::info('Message')
Alert::success('Message')
Alert::error('Message')
Alert::warning('Message')

Для вставки собственного шаблона с использованием переменных, тегов используется метод view:

Alert::view('alert', Alert::info, [
    'name' => 'Alexandr'
]);

Первый аргумент метода это путь/имя Blade шаблона:

// resources/views/alert.blade.php

Hello <strong>{{ $name }}</strong>

При использовании, будет установлено несколько ключей в сессии:

  • 'flash_notification.message' - Сообщение для отображения.
  • 'flash_notification.level' - Строка, представляющая тип уведомления.

Отображение по умолчанию уже встроено в шаблон, но вы можете вызывать его явно в blade шаблонах, для этого необходимо указать:

@include('platform::partials.alert')

Тост сообщения

Это маленькое всплывающее сообщение в правом верхнем углу экрана, для краткого уведомления пользователя о результате. Оно полностью соответствует одноразовым сообщениям Alert, но имеет другой внешний вид и несколько дополнительных методов:

use Orchid\Support\Facades\Toast;

Toast::warning('Lorem ipsum dolor sit amet, consectetur adipiscing elit.')

Вы можете указать необходимость автоматического скрытия и времени до этого:

Toast::warning('Lorem ipsum dolor sit amet.')
    ->autoHide(false);

Toast::warning('Lorem ipsum dolor sit amet.')
    ->delay(2000);

Уведомления в панели администрирования

Уведомления в панели администрирования отличаются от flash-сообщений тем, что не удаляются после просмотра и могут быть добавлены любым пользователям, даже когда они находятся не в сети. Это ещё один отличный способ информирования, например для приложения "менеджер задач" - уведомлять сотрудника о новой задаче.

Эти уведомления можно просмотреть, нажав на значок «Колокольчик уведомлений» на панели навигации приложения. При наличии непрочитанных уведомлений будет отображаться счетчик.

Примечание: Перед использованием этой функции, прочитайте Laravel notification documentation.

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

php artisan make:notification TaskCompleted

Эта команда создаст новый класс в вашем каталоге app/Notifications. Необходимо добавить канал DashboardChannel в via методе уведомления:

use Orchid\Platform\Notifications\DashboardChannel;

public function via($notifiable)
{
    return [DashboardChannel::class];
}

Перед использованием DashboardChannel необходимо определить toDashboard метод в классе уведомлений. Этот метод получит $notifiable объект и должен вернуть объект DashboardMessage:

use Orchid\Platform\Notifications\DashboardMessage;

public function toDashboard($notifiable)
{
    return (new DashboardMessage)
        ->title('Hello Word')
        ->message('New post!')
        ->action(url('/'));
}

Уведомления могут быть отправлены двумя способами: с помощью notify метода в трейте Notifiable или с помощью Notification фасада. Вы можете взглянуть на документацию уведомлений Laravel, чтобы получить более подробную информацию об этих двух подходах к отправке уведомлений.

Вот пример отправки уведомлений пользователю с использованием notify метода:

$user = User::find(1);

$user->notify(new TaskCompleted);