I have the following tables:
User
id
Suggestions_For
id
user_id
suggested_account
Suggestions
id
(User.id = Suggestions_For.user_id)
(Suggestions_For.suggested_account = Suggestions.id)
If I want to get all suggestions for user like this: $user->suggestions()->count()
how can I do it? Is there way to define a relationship in my model that goes through multiple pivot tables to join a user to suggestions?
I've tried with:
public function suggestions()
{
return $this->hasManyThrough('App\Suggestions', 'App\Suggestions_For', 'suggested_account', 'id');
}
but does not seems to work
You can define your relationship as ManyToMany
using pivot table suggestions_for
as
User Model
public function suggestions()
{
return $this->belongsToMany(Suggestions::class, 'suggestions_for', 'user_id')
}
Suggestions Model
public function users()
{
return $this->belongsToMany(User::class, 'suggestions_for', 'suggested_account ')
}