d1r3w0lF
d1r3w0lF

Reputation: 85

Laravel Eloquent Query with AND inside orWhere()

$query->orWhere(['member_id'=> $participant['id'], "event_id"=>$event_id, 'member_status'=>'1'])

on Debugging the Above query using toSql() , i Found this

select * from group_members where group_members.`event_id` = 5 and group_members.`event_id` is not null and (member_id = ? and event_id = ? and member_status = ?) or (member_id = ? or event_id = ? or member_status = ?)

However I want it to be like,

select * from group_members where group_members.`event_id` = 5 and group_members.`event_id` is not null and (member_id = ? and event_id = ? and member_status = ?) or (member_id = ? and event_id = ? and member_status = ?)

How do I achieve this?

Thanks in advance

Upvotes: 1

Views: 975

Answers (1)

Rutvij Kothari
Rutvij Kothari

Reputation: 1285

Try this:

$query->where(function($query) {
    $query->where(['member_id'=> $participant['id'], "event_id"=>$event_id, 'member_status'=>'1']);
})->orWhere(function($query) {
    $query->where(['member_id'=> $participant['id'], "event_id"=>$event_id, 'member_status'=>'1']);
});

Upvotes: 4

Related Questions