img

Admin

События и слушатели «на службе» отправки писем

Для привязки отправки письма к моменту created (когда новый проект будет создан) в модели требуется перенести код из контроллера в модель. Сначала подключаем в модель фасад Mail и самописный класс

 class=
 class=

а потом привязываемся к событию вот так

 class=
или для события удаления
 class=
или для собыия обновления
 class=
а внутри пишем
 class=

Теперь сделаем по-другому срабатывание отправки письма, с помощью events

Создадим событие

 class=

А в контроллере проектов после строчки создания записи проекта в БД Projert:create(  пропишем ручной вызов события

 class=

Создадим слушателя события

 class=
в конце команды добавить для связи с созданным классом события
 class=

Редактируем файл класса слушателя

 class=

переносим сюда код отправки сообщений

 class=

чтобы сделать класс почты ProjectCreated отличным от одноименного события, просто сделаем переименование первого

 class=
тогда чуть поменяем код выше
 class=

поставим $event перед параметрами

 class=

Чтобы исключить явную запись ручного вызова события event(new Proje.., воспользуемся событийным сервис-провайдером

 class=
и впишем туда связь классов наших события и слушателя
 class=

А в модель проектов добавить свойство, где связываем метод «создать» с наступлением события, описываемым классом ProjectCreated

 class=

теперь можно удалить в

 class=
строчку кода
 class=
и строчки ниже будет достаточно, чтобы возникло событие «СозданПроект» по вызову метода created Модели, а слушатель перехватил его и запустил отправку письма через метод handle
 class=

Что использовал

laravel 5/7

https://laracasts.com/series/laravel-from-scratch-2018/episodes/32

guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

СТАТЬИ БЛОГА ПО РУБРИКЕ И МЕТКАМ

img

Использование laravel

Журналирование ВЬЮШКИ Вот здесь мног инфы https://laravel.ru/docs/v5/views Вывод страницы оформления ВАЛИДАЦИЯ SQL-лочка Построитель запросов (builder) $users = DB::table(‘users’)->get();foreach ($users as $user) {  echo $user->name;} $user = DB::table(‘users’)->where(‘name’, ‘John’)->first();echo $user->name; $email = DB::table(‘users’)->where(‘name’, ‘John’)->value(’email’);$titles = DB::table(‘roles’)->pluck(‘title’);foreach ($titles as $title) {  echo $title;} $roles = DB::table(‘roles’)->pluck(‘title’, ‘name’);foreach ($roles as $name => $title) {  echo $title;} //обработка кусками результата запросаDB::table(‘users’)->orderBy(‘id’)->chunk(100, function ($users) {  foreach ($users as $user) {    //  }}); $users = DB::table(‘users’)->count();$price = DB::table(‘orders’)->max(‘price’);$price = DB::table(‘orders’)                ->where(‘finalized’, 1)                ->avg(‘price’); //произвольные поля вернуть $users = DB::table(‘users’)->select(‘name’, ’email as user_email’)->get(); //отличающиеся результаты$users = DB::table(‘users’)->distinct()->get(); //добавить к набору результов ещё […]

Использование laravel

Журналирование ВЬЮШКИ Вот здесь мног инфы https://laravel.ru/docs/v5/views Вывод страницы оформления ВАЛИДАЦИЯ SQL-лочка Построитель запросов (builder) $users = DB::table('users')->get();foreach ($users as $user) {  echo $user->name;} $user = DB::table('users')->where('name', 'John')->first();echo $user->name; $email = DB::table('users')->where('name', 'John')->value('email');$titles = DB::table('roles')->pluck('title');foreach ($titles as $title) {  echo $title;} $roles = DB::table('roles')->pluck('title', 'name');foreach ($roles as $name => $title) {  echo $title;} //обработка кусками результата запросаDB::table('users')->orderBy('id')->chunk(100, function ($users) {  foreach ($users as $user) {    //  }}); $users = DB::table('users')->count();$price = DB::table('orders')->max('price');$price = DB::table('orders')                ->where('finalized', 1)                ->avg('price'); //произвольные поля вернуть $users = DB::table('users')->select('name', 'email as user_email')->get(); //отличающиеся результаты$users = DB::table('users')->distinct()->get(); //добавить к набору результов ещё […]
img

Создание новой задачи на laravel

Установить отношение один ко многим в модели проектов Функция добавления новой задачи Вывод ошибок валидации в шаблоне Остальное как на видео Для лучшей инкапсуляции советуют по большой мере все операции с записями таблиц БД стараться […]

Создание новой задачи на laravel

Установить отношение один ко многим в модели проектов Функция добавления новой задачи Вывод ошибок валидации в шаблоне Остальное как на видео Для лучшей инкапсуляции советуют по большой мере все операции с записями таблиц БД стараться […]
img

Как обойтись без app.js для инстанса vue на laravel

Если по каким-то причинам не нужно, чтобы у какого-то компонента vue был отдельный инстенс на одной странице, то можно использовать только blade template с помощью подхода ниже

Как обойтись без app.js для инстанса vue на laravel

Если по каким-то причинам не нужно, чтобы у какого-то компонента vue был отдельный инстенс на одной странице, то можно использовать только blade template с помощью подхода ниже
img

Использование telescope laravel. Немного кеша и отправка писем

Чтобы зайти в телескоп, надо в браузере набрать site.com/telescope. Появится страница с разной отладочной информацией Вот это код позволит выводить в telescope в разделе dumps содержимое переменных Чтобы посмотреть содержимое кеша потом нужно ввести команды […]

Использование telescope laravel. Немного кеша и отправка писем

Чтобы зайти в телескоп, надо в браузере набрать site.com/telescope. Появится страница с разной отладочной информацией Вот это код позволит выводить в telescope в разделе dumps содержимое переменных Чтобы посмотреть содержимое кеша потом нужно ввести команды […]
img

Echo-server laravel private chat. Часть 1

Делаем браузерный чат Создать компонент, скопировав компонент из пред. инструкции Внести правки в скрипт компонента vue с пред.инструкции Создать событие Находим Редактируем Реализуем интерфейс В конструктур передаем все значения из компонента программируем получение сообщений Поменять […]

Echo-server laravel private chat. Часть 1

Делаем браузерный чат Создать компонент, скопировав компонент из пред. инструкции Внести правки в скрипт компонента vue с пред.инструкции Создать событие Находим Редактируем Реализуем интерфейс В конструктур передаем все значения из компонента программируем получение сообщений Поменять […]
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x