为了账号安全,请及时绑定邮箱和手机立即绑定

发送成功事件的电子邮件通知

发送成功事件的电子邮件通知

PHP
猛跑小猪 2021-10-15 16:36:06
我正在开发一个 Laravel 5.8 API 应用程序,该应用程序需要在用户成功下订单时通知他们。订单流程有效,但我没有收到电子邮件通知。以下是我将如何使用 mailtrap 进行演示MAIL_DRIVER=smtpMAIL_HOST=smtp.mailtrap.ioMAIL_PORT=2525MAIL_USERNAME=**************MAIL_PASSWORD=**************MAIL_ENCRYPTION=tls在订单模型中,我使用了可通知特征<?phpnamespace App;use App\User;use App\Product;use Illuminate\Notifications\Notifiable;use Illuminate\Database\Eloquent\Model;class Order extends Model{    use Notifiable;    ...}创建OrderSuccesful通知并OrderController像这样在商店方法中使用它<?php...use App\Notifications\OrderSuccessful;use App\Order;use Illuminate\Http\Request;class OrderController extends Controller{    public function store(Request $request, Product $product)    {        // create order        $order = Order::create([            'user_id'       => auth()->user()->id,            'product_id'    => $product->id,            'barrels'       => $request->barrels,            'status'        => 'successful'        ]);        $user = auth()->user();        // notify user of successful order        $user->notify(new OrderSuccessful($order));        return new OrderResource($order);    }}现在,当我成功下单时,我没有收到通知。由于我是第一次使用通知,我想知道我错过了什么。如果有人能指出这一点并告诉我如何解决它,我将不胜感激。
查看完整描述

1 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

在这里,您需要将Notifiable特征添加到User模型而不是Order.


在 User.php


class User extends Authenticatable

{

    use Notifiable;

    //

}

OrderSuccessful使用artisan以下方法创建通知类:


php artisan make:notification OrderSuccessful


在OrderSuccessful课堂上:


protected $order;


public function __construct(App\Order $order)

{

    $this->order = $order;

}

设置完上述所有内容后,您现在应该可以使用以下代码触发电子邮件:


$user->notify(new OrderSuccessful($order));



笔记:


确保您的users表格中有一个email字段,其中包含正确的电子邮件地址。


希望能帮助到你!


查看完整回答
反对 回复 2021-10-15
  • 1 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信