Имеется вот такой корявенький(хз как это записать используя релейшены) запрос к бд,
$ads = DB::table('ads')
->join('ad_translates','ads.id','=','ad_translates.ad_id')
->join('users', 'ads.user_id', '=', 'users.id')
->join('cities', 'ads.city_id', '=', 'cities.id')
->join('country_translates', 'cities.country_id', '=', 'country_translates.country_id')
->join('city_translates', 'ads.city_id', '=', 'city_translates.city_id')
->join('category_translates', 'ads.category_id', '=', 'category_translates.category_id')
->Where('country_translates.language_id', $lang_id)
->Where('city_translates.language_id', $lang_id)
->Where('category_translates.language_id', $lang_id)
->where('country_translates.country_id',$country_id)
->where('cities.id',$city_id)
->select('ads.*','ad_translates.name','ad_translates.description','users.name AS username', 'country_translates.country_id AS country_id',
'country_translates.name AS country', 'city_translates.name AS city', 'category_translates.name AS category')
->paginate(3);
В данном запросе условия,
->where('country_translates.country_id',$country_id)
->where('cities.id',$city_id)
могут полностью отсутствовать, или может присутствовать только одно условие c country_id. Получается 3 ситуации когда нет условий, одно условие или два условия. Как это организовать в коде, чтобы было кошерно