In my Business model:
public function membersCount()
{
return $this->belongsToMany('App\Member')->selectRaw('count(members.member_id) as aggregate')->groupBy('pivot_business_id');
}
public function getMembersCount()
{
if ( ! array_key_exists('membersCount', $this->relations)) $this->load('membersCount');
$related = $this->getRelation('membersCount')->first();
return ($related) ? $related->aggregate : 0;
}
In my controller:
$business = Business::findOrFail($id);
dd($business->getMembersCount());
I get this error:
SQLSTATE[42000]:
Syntax error or access violation:
1055 'ccf.business_member.member_id' isn't in GROUP BY
(SQL: select count(members.member_id) as aggregate, `business_member`.`business_id` as `pivot_business_id`, `business_member`.`member_id` as `pivot_member_id` from `members` inner join `business_member` on `members`.`member_id` = `business_member`.`member_id` where `business_member`.`business_id` in (2) group by `pivot_business_id`)