i wanna get the reservations that their status aren't canceled or if status is canceled it check they have unread messages or not
Can you help me?
class Reservation extends Model
{
public function unreadMessages() {
return $this->hasMany(Message::class, 'reservation_id', 'id')
->where('read', 0);
}
}
use where callback method
Reservation::where(function ($query) {
$query->where('status','!=','canceled')
->orWhere(function ($query){
$query->where('status','canceled')->whereHas('unreadMessages');
});
})->get();