2017-04-07 71 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