@@ -148,7 +148,7 @@ public function retrieve($request)
148148 $ module = $ response ['module ' ];
149149
150150 // Ottieni la lista dei campi di database dalla tabella con nome $table, e escludi da $select quelli non inclusi
151- if (!empty ($ table )) {
151+ if (!empty ($ table ) && ! empty ( $ select ) ) {
152152 $ database = database ();
153153 $ columns = $ database ->fetchArray ('SHOW COLUMNS FROM ` ' .$ table .'` ' );
154154 $ column_names = array_column ($ columns , 'Field ' );
@@ -185,8 +185,12 @@ public function retrieve($request)
185185 $ query = $ database ->table ($ table );
186186
187187 // Query per ottenere le informazioni
188- foreach ($ select as $ s ) {
189- $ query ->selectRaw ($ s );
188+ if ($ select === '* ' ) {
189+ $ query ->select ('* ' );
190+ } else {
191+ foreach ($ select as $ s ) {
192+ $ query ->selectRaw ($ s );
193+ }
190194 }
191195
192196 foreach ($ joins as $ join ) {
@@ -214,12 +218,27 @@ public function retrieve($request)
214218 $ query ->groupBy ($ group );
215219 }
216220
221+ // Ordinamento
222+ if (!empty ($ order )) {
223+ if (is_array ($ order )) {
224+ foreach ($ order as $ field => $ direction ) {
225+ $ query ->orderBy ($ field , $ direction );
226+ }
227+ } else {
228+ $ query ->orderBy ($ order );
229+ }
230+ }
231+
217232 $ count = $ query ->count ();
218233
219234 // Composizione query finale
220235 $ response = [];
221236
222- $ response ['records ' ] = $ database ->select ($ table , $ select , $ joins , $ where , $ order , [$ page * $ length , $ length ], null , $ group , $ whereraw );
237+ // Clone della query per ottenere i record con paginazione
238+ $ recordsQuery = clone $ query ;
239+ $ recordsQuery ->offset ($ page * $ length );
240+ $ recordsQuery ->limit ($ length );
241+ $ response ['records ' ] = $ recordsQuery ->get ()->toArray ();
223242 $ response ['total-count ' ] = $ count ;
224243 }
225244
0 commit comments