ciao!
sto usando laravel, ma non credo sia determinante.
in sostanza devo ottenere un json di questo tipo:
al momento ho fatto questo codice:codice:{ "data": [ { "questura": "Bologna", "mese": "dicembre", "anno": "2024", "dirigente": "", "stato": "ESEGUITE,PRENOTATE", "totale_minuti": "1800", "firma_timestamp": null, "timesheets_mediatori": [ { "nome": "DIRIGENTE 4391", "cognome": "DE SANTIS", "id_anagrafica": 4391, "totale_minuti": "1800", "timesheets": [ { "tlo_id": "gv1201", "tlo_timesheet": "gv1201" } ] } ] } ] }
che però mi da questo:codice:public function getDirigenteFunzionario($anag, $statoOre, $anno, $mese): JsonResponse { $data['data'] = array(); $format = new IntlDateFormatter('it_IT.UTF-8', IntlDateFormatter::NONE, IntlDateFormatter::NONE, NULL, NULL, "MMMM"); $monthName = datefmt_format($format, mktime(0, 0, 0, $mese)); $query = TimesheetOra::query() ->select([ 'citta_progetto', 'cod_anagrafica', DB::raw('SUM(tlo_minuti_lavorati) AS totale_minuti') ]) ->join('timesheets', 'id_timesheet', '=', 'tlo_timesheet') ->join('ps_progetto_sede', 'id_sede', '=', 'cod_sede_progetto') ->join('progetto_sedi', 'id_progetto_sede', '=', 'id_sede') ->where('tlo_fascia_oraria', 0) ->whereRaw("MONTH(tlo_data_da) = $mese") ->whereRaw("YEAR(tlo_data_da) = $anno") ->where('cancellato', 0) ->where('cod_anagrafica', $anag) ->where('id_anagrafica', $anag) ->whereIn('stato_ore', explode(',', $statoOre)) ->groupBy('id_sede') ->get(); foreach ($query as $var) { $codAnagrafica = $var->cod_anagrafica; $queryMediatori = TimesheetOra::query() ->select([ 'nome', 'cognome', 'id_anagrafica', DB::raw('SUM(tlo_minuti_lavorati) AS totale_minuti') ]) ->join('timesheets', 'id_timesheet', '=', 'tlo_timesheet') ->join('users', 'cod_anagrafica', '=', 'id_anagrafica') ->where('tlo_fascia_oraria', 0) ->whereRaw("MONTH(tlo_data_da) = $mese") ->whereRaw("YEAR(tlo_data_da) = $anno") ->where('cancellato', 0) ->where('cod_anagrafica', $codAnagrafica) ->whereIn('stato_ore', explode(',', $statoOre)) ->groupBy('id_anagrafica') ->get(); $arrMediatori = $queryMediatori->toArray(); foreach ($queryMediatori as $qm) { $arrMediatori['timesheets'] = array(); $queryTs = Timesheet::query() ->select([ 'id_timesheet', 'id_timesheet_old' ]) ->where('cod_anagrafica', $qm->id_anagrafica) ->whereIn('stato_ore', explode(',', $statoOre)) ->get(); array_push($arrMediatori['timesheets'], $queryTs); } $item = array( "questura" => $var->citta_progetto, 'mese' => $monthName, 'anno' => $anno, 'dirigente' => '', 'stato' => $statoOre, 'totale_minuti' => $var->totale_minuti, 'firma_timestamp' => null, 'timesheets_mediatori' => $arrMediatori, ); array_push($data['data'], $item); } return response()->json($data); }
in sostanza non riesco a creare il nome di array timesheets.codice:{ "data": [ { "questura": "Bologna", "mese": "dicembre", "anno": "2024", "dirigente": "", "stato": "ESEGUITE,PRENOTATE", "totale_minuti": "1800", "firma_timestamp": null, "timesheets_mediatori": { "0": { "nome": "DIRIGENTE 4391", "cognome": "DE SANTIS", "id_anagrafica": 4391, "totale_minuti": "1800" }, "timesheets": [ [ { "id_timesheet": 48, "id_timesheet_old": 135958 }, { "id_timesheet": 49, "id_timesheet_old": 135959 } ] ] } } ] }
dove sto sbagliando??

Rispondi quotando