From f0982961c0ea8460003a04a89c3dea6762e285b9 Mon Sep 17 00:00:00 2001 From: Maicol Battistini Date: Mon, 10 Jan 2022 16:01:09 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20=E2=9C=A8=20Supporto=20alle=20relations?= =?UTF-8?q?=20included?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/ApiController.php | 10 ++++++---- resources/js/Components/Pages/RecordsPage.tsx | 5 +++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Api/ApiController.php b/app/Http/Controllers/Api/ApiController.php index 503f3065d..551135588 100644 --- a/app/Http/Controllers/Api/ApiController.php +++ b/app/Http/Controllers/Api/ApiController.php @@ -17,9 +17,10 @@ class ApiController extends Controller /** * Display a listing of the resource. */ - public function index(): ResourceCollection + public function index(Request $request): ResourceCollection { - return new ResourceCollection($this->model::all()); + return (new ResourceCollection($this->model::all())) + ->include(explode(',', $request->input('include'))); } /** @@ -38,7 +39,7 @@ class ApiController extends Controller /** * Display the specified resource. */ - public function show(int $id): Resource|JsonResponse + public function show(int $id, Request $request): Resource|JsonResponse { $instance = $this->model::find($id); @@ -46,7 +47,8 @@ class ApiController extends Controller return $this->error(Response::HTTP_NOT_FOUND, __('Risorsa non trovata.')); } - return new Resource($instance); + return (new Resource($instance)) + ->include(explode(',', $request->input('include'))); } /** diff --git a/resources/js/Components/Pages/RecordsPage.tsx b/resources/js/Components/Pages/RecordsPage.tsx index d08e254aa..2a69e6f37 100644 --- a/resources/js/Components/Pages/RecordsPage.tsx +++ b/resources/js/Components/Pages/RecordsPage.tsx @@ -73,7 +73,8 @@ export class RecordsPage extends Page { async oninit(vnode: Vnode) { super.oninit(vnode); - const response = await this.model.all(); + // @ts-ignore + const response = await this.model.with(this.model.relationships).get(); const data = response.getData() as Model[]; if (data.length > 0) { @@ -152,7 +153,7 @@ export class RecordsPage extends Page { async updateRecord(id: number) { // @ts-ignore - const response = await this.model.find(id); + const response = await this.model.with(this.model.relationships).find(id); const instance = response.getData() as IModel; const dialog = $('mwc-dialog#add-record-dialog');