向User发送与Object集合相关的通知

时间:2017-02-01 12:58:47

标签: laravel

我有一个名为Quote的模型,它与$this->belongsTo(User::class)关系。

我正在尝试的是查询某些引号(其中status = 3),然后将通知发送给这些引号的用户。

实施例

$quotes = Quote::where('status', 3)->get();

Notification::send($quotes, new RequestClientReviewNotify($quotes));

但上述内容不会奏效,因为它会尝试在email表上找到quotes字段。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

email添加到Quote模型中的appends数组: protected $appends = ['email']

然后将此功能添加到Quote模型:

public function getEmailAttribute()
{
    return $this->user->email;
}

现在,引号集应包含用户电子邮件。 我没有测试它,但我应该工作。

或者您可以加入用户表:

Quote::select('quotetablename.*', 'users.email')
    ->where('quotetablename.status', 3)
    ->join('users', 'quotetablename.user_id', '=', 'users.id')
    ->get();