我正在開發(fā)一個 Laravel 5.8 API 應(yīng)用程序,該應(yīng)用程序需要在用戶成功下訂單時通知他們。訂單流程有效,但我沒有收到電子郵件通知。以下是我將如何使用 mailtrap 進(jìn)行演示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; ...}創(chuàng)建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); }}現(xiàn)在,當(dāng)我成功下單時,我沒有收到通知。由于我是第一次使用通知,我想知道我錯過了什么。如果有人能指出這一點并告訴我如何解決它,我將不勝感激。
1 回答

呼如林
TA貢獻(xiàn)1798條經(jīng)驗 獲得超3個贊
在這里,您需要將Notifiable特征添加到User模型而不是Order.
在 User.php
class User extends Authenticatable
{
use Notifiable;
//
}
OrderSuccessful使用artisan以下方法創(chuàng)建通知類:
php artisan make:notification OrderSuccessful
在OrderSuccessful課堂上:
protected $order;
public function __construct(App\Order $order)
{
$this->order = $order;
}
設(shè)置完上述所有內(nèi)容后,您現(xiàn)在應(yīng)該可以使用以下代碼觸發(fā)電子郵件:
$user->notify(new OrderSuccessful($order));
筆記:
確保您的users表格中有一個email字段,其中包含正確的電子郵件地址。
希望能幫助到你!
- 1 回答
- 0 關(guān)注
- 160 瀏覽
添加回答
舉報
0/150
提交
取消