public function index(Request $request)
{
$clubs = Club::with('clubExts')->orderBy('id', 'desc')
->when($request->club_name, function ($query) use ($request) {
$query->where('club_name', 'like', '%' . $request->club_name . '%');
});
if (!empty($request->province_id)) {
$clubs->whereHas('clubExts', function ($query) use ($request) {
$query->where('province_id', $request->province_id);
});
}
if (!empty($request->city_id)) {
$clubs->whereHas('clubExts', function ($query) use ($request) {
$query->where('city_id', $request->city_id);
});
}
if (!empty($request->dist_id)) {
$clubs->whereHas('clubExts', function ($query) use ($request) {
$query->where('dist_id', $request->dist_id);
});
}
$clubs = $clubs->paginate(15);
$info = [];
foreach ($clubs as $club) {
if (!isset($club->clubExts)) {
$provinceName = "";
$city = "";
$distName = "";
} else {
$provinceName = Region::where('id', $club->clubExts->province_id)->first()->area_name;
$city = Region::where('id', $club->clubExts->city_id)->first()->area_name;
$distName = Region::where('id', $club->clubExts->dist_id)->first()->area_name;
}
$info[] = [
'id' => $club->id,
'city_name' => $club->city_name,
'city_code' => $club->city_code,
'club_name' => $club->club_name,
'club_code' => $club->club_code,
'tel' => $club->clubExts->tel ?? null,
'principal' => $club->clubExts->principal ?? null,
'province_name' => $provinceName,
'city' => $city,
'dist_name' => $distName,
'created_at' => (string)$club->created_at ?? null,
];
}
$data = [
'page' => $clubs->currentPage(),
'total' => $clubs->total(),
'lastPage' => $clubs->perPage(),
'rows' => $info
];
return $this->response('获取成功!', $data, Code::R_OK);
}