|
@@ -120,11 +120,16 @@ func (s *List) ResultOut(pg *gorm.DB, model any, req rest.IRequestIn) rest.IRequ
|
|
if err != nil {
|
|
if err != nil {
|
|
return req.OutError(rest.ErrorMessage("ErrFileds", err.Error()))
|
|
return req.OutError(rest.ErrorMessage("ErrFileds", err.Error()))
|
|
}
|
|
}
|
|
- elemType := reflect.TypeOf(reflect.ValueOf(model))
|
|
|
|
|
|
+ // Определяем тип элемента напрямую без использования reflect.ValueOf
|
|
|
|
+ elemType := reflect.TypeOf(model).Elem()
|
|
|
|
+ // Создаем срез нужного типа
|
|
sl := reflect.MakeSlice(reflect.SliceOf(elemType), 0, 0)
|
|
sl := reflect.MakeSlice(reflect.SliceOf(elemType), 0, 0)
|
|
|
|
+ // Создаем указатель на этот срез
|
|
slPtr := reflect.New(sl.Type())
|
|
slPtr := reflect.New(sl.Type())
|
|
- slPtr.Set(sl)
|
|
|
|
- return s.ResultOutNames(pg, fieldNames, sl.Interface(), req)
|
|
|
|
|
|
+ // Устанавливаем значение созданного среза в указатель
|
|
|
|
+ slPtr.Elem().Set(sl)
|
|
|
|
+ // Передаем указатель на срез
|
|
|
|
+ return s.ResultOutNames(pg, fieldNames, slPtr.Interface(), req)
|
|
}
|
|
}
|
|
|
|
|
|
func (s *List) ResultOutNames(pg *gorm.DB, fields rest.FieldNamesList, res any, req rest.IRequestIn) rest.IRequestOut {
|
|
func (s *List) ResultOutNames(pg *gorm.DB, fields rest.FieldNamesList, res any, req rest.IRequestIn) rest.IRequestOut {
|