Filter by pivot

Hello,

I'm looking for a way to filter a table by pivot column. I'm using it inside a full Filament v3 admin panel.

For exemple, I have Users and Teams. They are linked by a pivot table with three columns :
  • user_id
  • team_id
  • role
When I would like to update the baseQuery :
$query->whereHas('teams', function ($query) use ($role) {
    $query->where('team_user.role', $role);
});

I got an error message :
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'role' in 'where clause'

Because in my select filters make method I have put 'role'.

I've tried so far :
  • make('team.role')
  • make('teams.pivot.role')
    ...
In my models, I have correctly set-up withPivot('role')

How to filter by pivot column ?
Was this page helpful?