2017-02-01 29 views
0

我有一個名爲Quote的模型,它具有$this->belongsTo(User::class)關係。發送通知給與對象集合相關的用戶

我想要的是查詢某些行情(Where status = 3),然後將通知發送給這些報價的用戶。

例子。

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

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

但上面不會工作,因爲它會嘗試找到quotesemail場。

任何幫助將是偉大的!

回答

1

添加email在報價模型的追加數組: protected $appends = ['email']

那麼這個功能添加到模型引用:

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

現在報價集合應該包含用戶的電子郵件。 我沒有測試它,但我應該工作。

或者你可以加入用戶表:

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

有趣的解決方案 - 我不知道是否會總是渴望負荷只訪問引用集合時,用戶關係。 – Andrew

+0

@Andrew append數組中的所有內容都將被加載 –

+0

這可能不是最好的,因爲有時候我只想查詢行情並且沒有額外的用戶關係查詢。 – Andrew