Search code examples
phpmysqllaravelshoes

Where relationship column equals?


I am trying to grab all records where Player's relationship called stats() has a column value of something. I would usually do ::where('column_name' 'column_value') for the players table, but how can I get ::where the relationship table's column equals to something?

Player::where('column_name', 'column_value')->get();

But I want to check a column in the relationships table?

public function roleplay()
{
    return $this->hasOne('App\Database\Frontend\User\Roleplay', 'user_id', 'id');
}

Solution

  • This will filter Player based on a related table

    Player::whereHas('roleplay', function($q){
       $q->where('column_name', 'value');
    })->get();