Добавление атрибутов и значений из другой модели с помощью sequenceize

Я использую sequenceize, я хочу, чтобы мой результат (JSON) выглядел так (см. WantResult). можно ли вернуть именно этот JSON, изменив мою функцию?

Вот моя функция:

try {
          const mediImport = await User.findOne({

            where: { Id: 1 },
            // Select forename as Vorname, name as Nachname
            attributes: [['forename', 'Vorname'], ['name', 'Nachname']],
            include: {
              model: SurveyResult,
              attributes: ['result', 'result'] }

          })

Вот мой результат:

    {
    "Person": {
        "Vorname": "Mustermann",
        "Nachname": "Max",
        "SurveyResult": {
            "result": {
                "birthdate": "01.01.1990",
                "Sind Sie miteinander verheiratet?": "Ja",
                "Waren Sie wegen Ihres Kinderwunsches bereits in ärztlicher Behandlung?": "Ja"
            }
        }
    }
}

WantResult: Но я хочу, чтобы мой результат выглядел так

Person": {
        "Vorname": "Mustermann",
        "Nachname": "Max",
        "birthdate": "01.01.1990" 

попробуйте это: attributes: [['forename', 'Vorname'], ['name', 'Nachname'] , ['SurveyResult.result.birthdate' , 'birthdate']],

Vivek Doshi 07.02.2019 15:05

это не сработало. SurveyResult — это еще одна модель. Я получаю эту ошибку: "Неизвестный столбец \"SurveyResult.result.birthdate\" в \"списке полей\",

Josef Henn 07.02.2019 15:13
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
2
1 184
1

Ответы 1

Вы должны сделать что-то вроде этого (это работает в том случае, если birthday является атрибутом SurveyResult и не находится внутри result):

try {
  const mediImport = await User.findOne({

    where: { Id: 1 },
    // Select forename as Vorname, name as Nachname
    attributes: [
        ['forename', 'Vorname'], 
        ['name', 'Nachname'],
        [sequelize.literal('"SurveyResult"."birthdate"'), 'birthdate']
    ],
    include: {
        model: SurveyResult,
        attributes: [] 
    }
  })
}

Другие вопросы по теме