2017-04-07 85 views
0

我有一個訂閱者模式Laravel多態性關係有許多通過

// Subscriber Model 

id 
user_id 
subscribable_id 
subscribable_type 

public function user() 
{ 
    return $this->belongsTo('App\User'); 
} 

public function subscribable() 
{ 
    return $this->morphTo(); 
} 

和一個主題模式

// Topic Model 

public function subscribers() 
{ 
    return $this->morphMany('App\Subscriber', 'subscribable'); 
} 

而且我想通過訂購模式讓所有的用戶,通知他們像

通知::發送($ topic-> users,new Notification($ topic));

// Topic Model 


public function users() 
{ 
    return $this->hasManyThrough('App\User', 'App\Subscriber'); 
} 

任何想法?

+0

我想你可能要使用數據透視表用於該用途的情況下? – Jono20201

+0

請舉例嗎? – Edward

+0

https://laravel.com/docs/5.4/eloquent-relationships#many-to-many – Jono20201

回答

-1

好吧,我得到了一個更好的解決方案

// Subscriber Model 

use Notifiable; 

public function receivesBroadcastNotificationsOn() 
{ 
    return 'App.User.' . $this->user_id; 
} 


// Send Notification 

Notification::send($post->subscribers, new TestNotification($post)); 
+1

這可能是您的通知問題的解決方案,但不是對HasMany Through Polymorphic關係問題的回答。 – dparoli