organization_id; $specialityId = $request->speciality_id; if (empty($organizationId) || empty($specialityId)) { $messageorganizationId = !empty($organizationId) ? ' ' : ' organization_id or '; $messageSpecialityId = !empty($specialityId) ? ' ' : 'speciality_id'; abort(Response::HTTP_BAD_REQUEST, 'Missing Parameter' . $messageorganizationId . $messageSpecialityId); } $doctors = PractitionerRole::query() ->with(['practitioner.person', 'speciality', 'prices']) ->whereHas('prices', function ($query) { $query->where('priceable_type', Practice::class); }) ->where('organization_id', $organizationId) ->where('speciality_id', $specialityId) ->get(); foreach ($doctors as $key => $doctor) { $specialisName = $doctor->speciality->name; } return response()->json([ 'status' => 'success', 'statusCode' => Response::HTTP_OK, 'message' => 'Data Berhasil di ambil', 'data' => [ 'title' => 'Spesialis ' . $specialisName, 'doctors' => SpecialityResource::collection($doctors) ] ]); } public function searchSpecialityOrPerson(Request $request) { $doctors = PractitionerRole::query() ->with(['prices']) ->whereHas('prices', function ($query) { $query->where('priceable_type', Practice::class); }) ->leftJoin('specialities', function ($query) { $query->on('practitioner_roles.speciality_id', '=', 'specialities.id'); }) ->leftJoin('persons', function ($query) { $query->on('practitioner_roles.practitioner_id', '=', 'persons.id'); }) ->whereRaw("(persons.name LIKE '%{$request->value}%' OR specialities.name LIKE '%{$request->value}%')") ->where('organization_id', $request->organization_id) ->get(['persons.name AS person_name', 'specialities.name AS speciality_name', 'practitioner_id', 'practitioner_roles.id']); return response()->json([ 'status' => 'success', 'statusCode' => Response::HTTP_OK, 'message' => 'Data Berhasil di ambil', 'data' => [ 'doctors' => SpecialityResource::collection($doctors) ] ]); } /** * Show the form for creating a new resource. * @return Renderable */ public function create() { // } /** * Store a newly created resource in storage. * @param Request $request * @return Renderable */ public function store(Request $request) { // } /** * Show the specified resource. * @param int $id * @return Renderable */ public function show(Request $request, $id) { // } /** * Show the form for editing the specified resource. * @param int $id * @return Renderable */ public function edit($id) { // } /** * Update the specified resource in storage. * @param Request $request * @param int $id * @return Renderable */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * @param int $id * @return Renderable */ public function destroy($id) { // } }