使多对多无关的问题

问题描述

我在一个应用程序上工作,用户可以设计自己的自定义表单。我正在使用Sequelize和Postgress。

它具有一个在线表单,用户可以在其中创建其自定义表单。我有两个实体,其中应显示事件事件类型的表单。

  • 事件可以具有不同的事件类型。
  • 每个事件类型都有通过表单构建器创建的表单。
  • 每个所选事件类型的事件应显示不同的形式。
  • 保存事件应保存所有字段,包括该事件类型的字段,并且这些值应立即与事件相关联。

我已使用以下文章对Form Builder进行建模:

Event
-------
  id
  name
  typeId (FK to eventType.id)

Event Type
-----
  id (PK)
  name

Form_elements
-------------
  id (PK)
  eventType_id (FK to eventType.id)
  element_type_id (FK to element_types.id)

Element_types
-------------
  id (PK)
  name

Element_list_values
-------------------
  id (PK)
  element_id (FK to form_elements.id)
  event_id (FK to event.id)
  value

用户在“添加或编辑表单”上时,如何通过选择查询从表单字段和该模式的field_values生成表?

我尝试了以下代码

formField.findAll({
        where: {
            eventTypeId: typeId,},include: [{
            model: formFieldType,{
            model: formFieldValue,as: 'FormFieldValues',}],});

但我不断得到:

SequelizeEagerLoadingError:formFieldValue与formField不关联!

这是我的模型关联:

EventType.hasMany(FormField);
FormField.belongsTo(EventType);
FieldType.hasMany(FormField,{ foreignKey: 'typeId',as: 'type' });
FormField.belongsTo(FieldType,{ foreignKey: 'typeId' });

// field value
Event.belongsToMany(FormField,{ through: 'formFieldValues',foreignKey: 'event_id' });
FormField.belongsToMany(Event,foreignKey: 'field_id' });

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)