我有一个Voyager优惠券表BREAD,其中每个优惠券都会有一个电子邮件地址。创建新的优惠券后,我想向与该优惠券关联的特定电子邮件地址发送电子邮件。
优惠券表:
例如,从上面的图片中,我创建了名为haha123的优惠券后,我想向cdn@gmail.com发送电子邮件。
由于我没有创建用于生成新优惠券的自定义控制器,并且只使用了Voyager的默认BREAD功能,因此我不确定应该在哪里以及应该怎么做。
已解决:
这很可能不是最好的方法,因为我没有利用旅行者事件。因此,通过添加我自己的自定义voyager CouponsController来覆盖默认控制器,并在自定义CouponsController的store方法中添加laravel邮件功能,我就以麻烦的方式完成了工作。
答案 0 :(得分:0)
旅行者只不过使您的工作变得简单。它在laravel中为您创建模型和控制器。您将在使用artisan创建的自定义模型或控制器的同一位置找到控制器和模型。希望对您有所帮助。
如果您还有其他问题,请具体说明您所面临的问题。
欢呼
答案 1 :(得分: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
模型传递,您可以使用该模型发送电子邮件。
如果您需要更具体的帮助,则需要发布代码。我敢肯定,如果您追赶下去,也可以在CouponController的create
方法中做到这一点。
答案 2 :(得分:0)
可能有用,当模型状态更新时发送电子邮件(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');
}
);
}
});
}
}