Заполните данные без идентификатора ассоциации в Sequelize

Изменить стандартную версию C ++ по умолчанию

Из (ошибка COMPILE FILE FAILED): 'to_string' не является членом 'std'

-std = c ++ 98

To (ФАЙЛ УСПЕШНОГО ФАЙЛА)

-std = c ++ 11 или -std = c ++ 14

Протестировано на Cygwin G ++ (GCC) 5.4.0

0
задан Himura Da Battosuai 20 March 2019 в 03:42
поделиться

1 ответ

Поскольку профиль связан с пользователями, а не с пользовательскими специальностями, было бы разумнее выполнить это с помощью двух запросов.

Получите ваши пользовательские особенности, как вы делали выше, затем возьмите эти userId и захватите их связанные профили (должно быть что-то вроде User.getProfile в зависимости от того, как настроены ваши ассоциации).

Прямо сейчас у вас есть атрибуты UserSpecialties, настроенные так, чтобы они возвращали только specialty_id и title. Если вы добавите userId к этим атрибутам, вы можете использовать эти userId для запроса таблицы вашего профиля. Обещание затем хорошо работает для чего-то подобного, например:

UserSpecialties.findAll({...}).then((userSpecialties) => {
  User.getProfile({where: {userId: userSpecialties.userId}, attributes: {'first_name', 'last_name'})
});

В зависимости от того, что вы конкретно пытаетесь сделать с информацией, вам, вероятно, придется немного ее подправить, но общая идея добавления в userId в качестве атрибута, а затем запрос вашей пользовательской таблицы для профилей с использованием userId из результата запроса UserSpecialties должен работать нормально для данных, которые вы хотите.

Несмотря на то, что, глядя на ваши модели, возможно, имеет смысл просто иметь профиль и пользователя в одной таблице, где у пользователя есть имя, фамилия, имя пользователя и статус. Поскольку в Профиле нет много других вещей, а затем, если вам нужны определенные вещи для userProfile, вы можете использовать области действия в вашей пользовательской модели.

0
ответ дан MxOliver 20 March 2019 в 03:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: