繁体   English   中英

Laravel/Voyager:使用 BREAD 创建新数据时发送电子邮件

[英]Laravel/Voyager: Send email when new data is created using BREAD

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

优惠券表:

在此处输入图片说明

例如从上图中,我创建了名为 haha​​123 的优惠券后,我想发送一封电子邮件到 cdn@gmail.com。

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

解决了:

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

也许有用,当模型状态更新时发送电子邮件(Laravel Voyager Admin)

<?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');
                    }
                );
            }
        });
    }
}

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

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

干杯

您可以非常简单地使用事件侦听器连接到 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模型,您可以使用它来发送电子邮件。

如果您需要更具体的帮助,则需要发布代码。 我相信如果你找到它,你也可以在 CouponController 的create方法中做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM