Laravel / Voyager: отправка электронной почты при создании новых данных с помощью BREAD - PullRequest
0 голосов
/ 26 июня 2018

У меня есть таблица купонов BREAD с Voyager, в которой каждый купон будет иметь адрес электронной почты. Я хотел бы отправить электронное письмо на конкретный адрес электронной почты, который связан с купоном при создании нового купона.

Таблица купонов:

enter image description here

Например, на изображении выше, после того, как я создал купон с именем: haha123, я хотел бы отправить электронное письмо на cdn@gmail.com.

Поскольку я не создал пользовательский контроллер для генерации нового купона и использовал только функцию BREAD из Voyager, поэтому я не уверен, где и как мне это сделать.

РЕШИТЬ:

Скорее всего, это не самый лучший способ, поскольку я не использовал события вояджера. Следовательно, я просто делаю это хлопотным способом, добавляя свой собственный пользовательский voyager CouponsController, чтобы перезаписать контроллер по умолчанию и добавить почтовую функцию laravel в методе store внутри пользовательского CouponsController.

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Вы можете очень просто подключиться к жизненному циклу модели Coupon с помощью прослушивателя событий:

https://laravel.com/docs/5.6/eloquent#events

Сначала скажите модели, чтобы она запускала событие CouponCreated при создании новой модели

use App\Events\CouponCreated;

class Coupon extends Model
{
    /**
     * The event map for the model.
     *
     * @var array
     */
    protected $dispatchesEvents = [
        'created' => CouponCreated::class
    ];
}

Это событие будет передано модели Coupon, которую вы можете использовать для отправки электронного письма.

Если вам нужна более конкретная помощь, вам нужно отправить код. Я уверен, что вы также можете просто сделать это в create методе CouponController, если вы поймете это.

0 голосов
/ 26 июня 2018

Voyager просто облегчает вашу работу. Он создает модель и контроллер для вас в Laravel. Вы найдете контроллер и модели в том же месте, что и пользовательская модель или контроллер, созданный с использованием artisan. Надеюсь, это поможет.

Если у вас есть дополнительные вопросы, пожалуйста, уточните, с какой проблемой вы столкнулись.

Приветствия

...