I have a ManyToMany
relationship between Election
and Party
to connect parties to multiple elections.
public function parties(): BelongsToMany
{
return $this
->belongsToMany(Party::class)
->using(ElectionParty::class)
->withPivot('has_no_answers', 'published', 'program_pdf', 'program', 'id');
}
On the pivot table election_party
I added an auto incrementing id
.
Parties can give answers to each election, for which reason I created a hasMany
relationship to Answer
on the pivot table, referenced by electionparty_id
class ElectionParty extends Pivot
{
public function answers(): HasMany
{
return $this->hasMany(Answer::class);
}
}
Now, to get the answers or in this case it's count, i do this in Blade:
@foreach($election->parties as $party)
{{ $party->pivot->answers->count() }}
@endforeach
This however, does not work, because it does not try to get answers by the pivot table id, which I assumed it would be but by the id of the election:
SQLSTATE[42703]: Undefined column: 7 ERROR: column answers.election_id does not exist LINE 1: select * from "answers" where "answers"."election_id" = $1 a... ^ HINT: Perhaps you meant to reference the column "answers.question_id". (SQL: select * from "answers" where "answers"."election_id" = 16 and "answers"."election_id" is not null)
Am I missing something here or doing something not how it's supposed to be done?