Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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');
}
like image 347
VoiD HD Avatar asked Mar 29 '17 23:03

VoiD HD


2 Answers

This will filter Player based on a related table

Player::whereHas('roleplay', function($q){
   $q->where('column_name', 'value');
})->get();
like image 86
oseintow Avatar answered Oct 26 '22 13:10

oseintow


Laravel 8^ : doc Relationship Existence Queries

Product::with('categoreys')->whereRelation('categoreys', 'status', '0')
                                            ->get();
like image 45
ali hassan Avatar answered Oct 26 '22 13:10

ali hassan