我正在制作一个电子商务网站,我想在订单完成后向不同角色的用户发送电子邮件。我只能为特定角色执行此操作,但如何针对不同角色执行此操作?由于普通用户可以是卖家,卖家也可以从其他卖家那里订购产品。到目前为止,这些是我尝试过的步骤:
订单控制器.php
$users = User::whereHas('role', function ($q) {
$q->where('name', 'user', 'seller');
})->get();
Mail::to($users)->send(new OrderCompleted($suborder));
但是,这仅适用并将电子邮件发送到user
角色而不是seller
角色。
这是我的邮件模型:
订单完成.php
public $suborder;
public function __construct(SubOrder $suborder)
{
$this->suborder = $suborder;
}
我也尝试过Mail::to($suborder->user->email)->send(new OrderCompleted($suborder));
,其中我SubOrder.php model
的如下:
public function user()
{
return $this->belongsTo(User::class);
}
但是当我尝试使用第二个查询时,我得到一个错误Trying to get property 'email' of non-object
我该如何做到这一点?任何建议将不胜感激。谢谢!