باید روابط بین جداول رو اول ایجاد کنید بعد توی کوئریها ازشون استفاده کنید کلا روشهای مختلفی میشه به نتایج رسید ولی با روابط اول باید بین شهر و منطقه و کاربران روابطی رو که دارن ایجاد کنید مثلا به شکل زیر
// User model
public function region() : BelongsTo
{
return $this->belongsTo(Region::class);
}
===========================
// City model
public function regions() : HasMany
{
return $this->hasMany(Region::class);
}
============================
// Region model
public function users() : HasMany
{
return $this->hasMany(User::class);
}
public function city() : BelongsTo
{
return $this->belongsTo(City::class);
}
========================
// توی کنترلر به شکل زیر
$users = User::where('status', true);
if ($request->has('age_difference')) {
$users->where('age_difference', '=', $request->age_difference);
}
if ($request->has('time')) {
$users->where('time', '=' , $request->time);
}
if ($request->has('disability')) {
$users->where('disability', '=' , $request->disability);
}
if ($request->has('name')) {
$users->where(function ($query) use ($request) {
$query->whereHas('region', function ($query) use ($request) {
$query->whereHas('city', function ($query) use ($request) {
$query->where('name', 'like', $request->name);
});
});
});
});
}
dd($users->get());