【问题标题】:loopback hasMany through gives empty arrayloopback hasMany 通过给出空数组
【发布时间】:2018-07-03 08:11:34
【问题描述】:

我有以下定义的模型:

学院

{
  "name": "academy",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "id": {
      "type": "number",
      "required": true
    },
    "name": {
      "type": "string",
      "required": true
    },
    "created": {
      "type": "date"
    },
    "updated": {
      "type": "date"
    },
    "academy_version_id": {
      "type": "number",
      "required": true
    },
    "description": {
      "type": "string"
    }
  },
  "validations": [],
  "relations": {
    "versions": {
      "type": "hasMany",
      "model": "academy_version",
      "foreignKey": "academy_id",
      "through": "academy_has_versions"
    }
  },
  "acls": [],
  "methods": {}
}

academy_version

        {
      "name": "academy_version",
      "base": "PersistedModel",
      "idInjection": true,
      "options": {
        "validateUpsert": true
      },
      "properties": {
        "id": {
          "type": "number",
          "required": true
        },
        "name": {
          "type": "string",
          "required": true
        },
        "created": {
          "type": "date"
        },
        "updated": {
          "type": "date"
        }
      },
      "validations": [],
      "relations": {
        "academies": {
          "type": "hasMany",
          "model": "academy",
          "foreignKey": "academy_version_id",
          "through": "academy_has_versions"
        }
      },
      "acls": [],
      "methods": {}
    }

academy_has_versions

{
  "name": "academy_has_versions",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "id": {
      "type": "number",
      "required": true
    },
    "academy_id": {
      "type": "number",
      "required": true
    },
    "academy_version_id": {
      "type": "number"
    }
  },
  "validations": [],
  "relations": {
    "academy": {
      "type": "belongsTo",
      "model": "academy",
      "foreignKey": "academy_id"
    },
    "academy_version": {
      "type": "belongsTo",
      "model": "academy_version",
      "foreignKey": "academy_version_id"
    }
  },
  "acls": [],
  "methods": {}
}

现在你可以看到我的academy 模型有一个hasManyacademy_has_versions

当我尝试请求这个时,我得到以下结果:

如您所见,我得到一个空数组(版本)

这是不正确的,因为我的数据库如下所示:

academy_has_versions

academy_version

那么谁能告诉我我做错了什么?

【问题讨论】:

    标签: loopbackjs loopback


    【解决方案1】:

    我找不到错误,但我建议你试试这个:

    1. 从所有模型中删除“id”属性,因为 idInjection 设置为 true。
    2. 移除外键对应的属性。
    3. 从学院模型中删除 academy_version_id 属性,因为在关系中没有意义。

    学院

    {
      "name": "academy",
      "base": "PersistedModel",
      "idInjection": true,
      "options": {
        "validateUpsert": true
      },
      "properties": {
        "name": {
          "type": "string",
          "required": true
        },
        "created": {
          "type": "date"
        },
        "updated": {
          "type": "date"
        },
        "description": {
          "type": "string"
        }
      },
      "validations": [],
      "relations": {
        "versions": {
          "type": "hasMany",
          "model": "academy_version",
          "foreignKey": "academy_id",
          "through": "academy_has_versions"
        }
      },
      "acls": [],
      "methods": {}
    }
    

    academy_version

    {
          "name": "academy_version",
          "base": "PersistedModel",
          "idInjection": true,
          "options": {
            "validateUpsert": true
          },
          "properties": {
            "name": {
              "type": "string",
              "required": true
            },
            "created": {
              "type": "date"
            },
            "updated": {
              "type": "date"
            }
          },
          "validations": [],
          "relations": {
            "academies": {
              "type": "hasMany",
              "model": "academy",
              "foreignKey": "academy_version_id",
              "through": "academy_has_versions"
            }
          },
          "acls": [],
          "methods": {}
        }
    

    academy_has_versions

    {
      "name": "academy_has_versions",
      "base": "PersistedModel",
      "idInjection": true,
      "options": {
        "validateUpsert": true
      },
      "properties": {},
      "validations": [],
      "relations": {
        "academy": {
          "type": "belongsTo",
          "model": "academy",
          "foreignKey": "academy_id"
        },
        "academy_version": {
          "type": "belongsTo",
          "model": "academy_version",
          "foreignKey": "academy_version_id"
        }
      },
      "acls": [],
      "methods": {}
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-10
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多