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');