A Venue
hasMany Subscription
A Subscription
belongsToMany User
How can I retrieve all User
from Venue
through Subscription
?
I imagine something like:
$venue->subscribers // Return all `User`
My database scheme: http://www.laravelsd.com/share/AAjuYS
class Venue {
public function subscribers() {
return $this->hasManyThrough('App\User', 'App\Subscription');
}
}
Fails with error:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'users.subscription_id' in 'on clause' (SQL: select `users`.*, `subscriptions`.`venue_id` from `users` inner join `subscriptions` on `subscriptions`.`id` = `users`.`subscription_id` where `users`.`deleted_at` is null and `subscriptions`.`venue_id` = 1)
// In Venue class
public function subscribers()
{
return $this->hasManyThrough('App\User', 'App\Subscription');
}
You can read about it in the documentation, it's pretty straight-forward: http://laravel.com/docs/5.1/eloquent-relationships#Has-Many-Through