1

我有一张带有 Voyager 的优惠券表 BREAD,其中每张优惠券都有一个电子邮件地址。创建新优惠券后,我想向与优惠券关联的特定电子邮件地址发送电子邮件。

优惠券表:

在此处输入图像描述

例如上图,在我创建了名为:haha123 的优惠券后,我想发送电子邮件至 cdn@gmail.com。

由于我没有制作用于生成新优惠券的自定义控制器,并且只使用 Voyager 的默认 BREAD 功能,因此我不确定我应该在哪里以及如何做。

解决了:

这很可能不是最好的方式,因为我没有使用航海者事件。因此,我只是通过添加我自己的自定义 voyager CouponsController 来覆盖默认控制器并在自定义 CouponsController 的 store 方法中添加 laravel 邮件功能来做这件事。

4

3 回答 3

1

可能有帮助,当模型状态更新时发送电子邮件(Laravel Voyager 管理员)

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Mail;

class Contact extends Model
{
    public $table = 'contacts';
    public $fillable = ['name', 'email', 'message'];

    protected static function boot()
    {
        parent::boot();
        static::updating(function ($contact) {
            if ($contact->status == 1) {
                Mail::send(
                    'email',
                    array(
                        'name' => $contact->name,
                        'email' => $contact->email,
                        'bodyMessage' => $contact->message
                    ),
                    function ($message) use ($contact) {
                        $message->from($contact->email);
                        $message->to('email_address@email.com', 'Name')->subject('Your request status updated');
                    }
                );
            }
        });
    }
}
于 2020-06-24T14:05:19.797 回答
0

您可以非常简单地使用事件侦听器连接到 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 的方法中做到这一点。

于 2018-06-26T16:10:17.093 回答
0

Voyager 让您的工作变得轻松。它在 laravel 中为您创建模型和控制器。您将在与使用 artisan 创建的自定义模型或控制器相同的位置找到控制器和模型。我希望它有所帮助。

如果您有更多问题,请具体说明您面临的问题。

干杯

于 2018-06-26T15:44:37.260 回答