Loopbackjs 有多通关系,计数总是返回0
我有一个公司表、一个地址表和一个CompanyAddresses表来规范多对多关系。环回可以很好地添加公司,向公司添加地址,我甚至可以使用API资源管理器使用(POST/companys/{id}/addresses/{fk})方法查询与公司关联的地址 但是,当我尝试获取与公司关联的所有地址(get/companys/{id}/addresses)时,返回的是一个空数组。另外,当我对某个公司拥有多少地址(GET/companys/{id}/addresses/count)进行计数时,我总是得到0 我肯定我错过了一些非常微小的东西。我的数据源是postgresqlLoopbackjs 有多通关系,计数总是返回0,loopbackjs,Loopbackjs,我有一个公司表、一个地址表和一个CompanyAddresses表来规范多对多关系。环回可以很好地添加公司,向公司添加地址,我甚至可以使用API资源管理器使用(POST/companys/{id}/addresses/{fk})方法查询与公司关联的地址 但是,当我尝试获取与公司关联的所有地址(get/companys/{id}/addresses)时,返回的是一个空数组。另外,当我对某个公司拥有多少地址(GET/companys/{id}/addresses/count)进行计数时,我总是得到0
/* ----- common/models/companies.json ----- */
{
"name": "Companies",
"base": "User",
"strict": true,
"idInjection": false,
"options": {
"validateUpsert": true
},
"properties": {
"companyName": {
"type": "string",
"required": true
},
"firstName": {
"type": "string",
"required": true
},
"lastName": {
"type": "string",
"required": true
},
"cellNumber": {
"type": "string"
}
},
"validations": [],
"relations": {
"addresses": {
"type": "hasMany",
"model": "Addresses",
"foreignKey": "addressesid",
"through": "CompaniesAddresses"
}
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW",
"property": "create"
},
{
"accessType": "READ",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
},
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
],
"methods": {}
/* ---- common/models/addresses.json ---- */
{
"name": "Addresses",
"base": "PersistedModel",
"strict": true,
"idInjection": false,
"options": {
"validateUpsert": true
},
"properties": {
"streetaddress2": {
"type": "string"
},
"phonenumber2": {
"type": "string"
},
"phonenumber1": {
"type": "string",
"required": true
},
"zippostalcode": {
"type": "string",
"required": true
},
"stateprov": {
"type": "string",
"required": true
},
"streetaddress1": {
"type": "string",
"required": true
}
},
"validations": [],
"relations": {
"companies": {
"type": "hasMany",
"model": "Companies",
"foreignKey": "companiesid",
"through": "CompaniesAddresses"
}
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW"
}
],
"methods": {}
/* ---- companiesaddresses.json ---- */
{
"name": "CompaniesAddresses",
"base": "PersistedModel",
"strict": true,
"idInjection": false,
"options": {
"validateUpsert": true
},
"properties": {
"companiesid": {
"type": "number",
"id": true,
"required": true
},
"addressesid": {
"type": "number",
"id": true,
"required": true
}
},
"validations": [],
"relations": {
"addresses": {
"type": "belongsTo",
"model": "Addresses",
"foreignKey": "addressesid"
},
"companies": {
"type": "belongsTo",
"model": "Companies",
"foreignKey": "companiesid"
}
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW"
}
],
"methods": {}
}
/* ---- server/boot/model-config.json ---- */
{
"_meta": {
"sources": [
"loopback/common/models",
"loopback/server/models",
"../common/models",
"./models"
],
"mixins": [
"loopback/common/mixins",
"loopback/server/mixins",
"../common/mixins",
"./mixins"
]
},
"User": {
"dataSource": "db"
},
"AccessToken": {
"dataSource": "db",
"public": false
},
"ACL": {
"dataSource": "db",
"public": false
},
"RoleMapping": {
"dataSource": "db",
"public": false
},
"Role": {
"dataSource": "db",
"public": false
},
"Companies": {
"dataSource": "pg",
"public": true,
"$promise": {},
"$resolved": true
},
"Addresses": {
"dataSource": "pg",
"public": true,
"$promise": {},
"$resolved": true
},
"CompaniesAddresses": {
"dataSource": "pg",
"public": true,
"$promise": {},
"$resolved": true
}
}
公司和地址中的外键如下所示:
**common/models/companys.json**
“关系”:{
“地址”:{
“类型”:“有许多”,
“型号”:“地址”,
“外键”:“addressesid”,公司和地址中的外键如下所示:
**common/models/companys.json**
“关系”:{
“地址”:{
“类型”:“有许多”,
“型号”:“地址”,
“外键”:“地址ID”,