queryBuilder("incomes"); $data['incomes']['columns'] = collect($query->columns)->map(function($item){ return ucfirst(substr($item, strrpos($item, '.')+1)); }); $data['incomes']['data'] = $query->get(); $query = $this->queryBuilder("expenses"); $data['expenses']['columns'] = collect($query->columns)->map(function($item){ return ucfirst(substr($item, strrpos($item, '.')+1)); }); $data['expenses']['data'] = $query->get(); return Inertia::render('Transactions/index', $data); } private function queryBuilder($type){ $query = DB::table($type) ->select([ // 'users.account', // 'users.role', // 'users.email', $type.'.amount', $type.'.description', $type.'.date', 'type_'.$type.'.label' ]) ->join('users', 'users.id', $type.'.id_user') ->join('type_'.$type, 'type_'.$type.'.id', $type.'.id_type_'.$type) ; return $query; } }