1

我的模型.json:

我的模型.json

"masterTrip": {
    "options": {
        "relations": {
            "trips": {
                "type": "hasMany",
                "model": "trip",
                "foreignKey": "masterTripId"
            }
        }
    }
},
"trip": {
    "options": {
        "relations": {
            "masterTrips": {
                "type": "belongsTo",
                "model": "masterTrip",
                "foreignKey": "masterTripId"
            }
        }
    }
},

但我不明白trip和mastertrip之间的关系。谁能解释一下?

4

2 回答 2

3

有几件事可能是问题所在。这是我想到的:

  • 您应该只需要属于另一个模型的外键。(在这种情况下,那将是trip。)
  • 您是否真的在 masterTrip 下创建了旅行?(无论是在代码本身还是通过 API?)我知道这听起来很傻,但是上下文不够清楚,我无法判断您是否创建了示例数据。
  • 听起来当您执行 GET 时您实际上可能正在获取数据/masterTrip/1/trips ,对吗?如果是这样,那么这听起来像是正确的行为。

我自己对 LoopBack 还是比较陌生,但我不确定这filter[include]=belongsToRelationName是获取所需数据的正确方法。从技术上讲,您只是在寻找关联的 hasMany 数据数组,对吗?在这种情况下,属于 masterTrip行程。获得它的 RESTful 方式是masterTrip/{id}/trips

希望其中之一有所帮助。

于 2014-05-11T07:06:01.610 回答
0

您的“属于”关系名称不是单数。应该是单数。

当您制作“属于”时,关系名称是单数,而对于 hasMany,您的关系名称是复数。更多详情请查看官方文档——

请参阅下面的这个工作示例 -

{
  "name": "Booking",
  "base": "PersistedModel",
  "strict": false,
  "idInjection": true,
  "properties": {
    "myuserId": {
      "type": "number"
    },
    "orgin": {
      "type": "string"
    },
    "orgin_lat": {
      "type": "string"
    },
    "orgin_lon": {
      "type": "string"
    },
    "destination": {
      "type": "string"
    },
    "dest_lat": {
      "type": "string"
    },
    "dest_lon": {
      "type": "string"
    },
    "parcel_type": {
      "type": "string"
    },
    "volume": {
      "type": "string"
    },
    "weight": {
      "type": "string"
    },
    "price": {
      "type": "string"
    },
    "receiver_phn": {
      "type": "string"
    },
    "payment_mode": {
      "type": "string"
    },
    "booking_status": {
      "type": "string"
    },
    "lang": {
      "type": "string"
    },
    "booking_no": {
      "type": "string"
    },
    "cancel_reason": {
      "type": "string"
    },
     "cancel_by": {
      "type": "string"
    },
    "booking_date": {
      "type": "string"
    },
    "plan_later": {
      "type": "string"
    },
    "plan_date": {
      "type": "string"
    },
    "created": {
      "type": "string"
    },
    "modified": {
      "type": "string"
    }
  },
  "validations": [],
  "relations": {
      "biddings": {
      "type": "hasMany",
      "model": "Bidding",
      "foreignKey": "bookingId"
    }
  },
  "acls": [],
  "methods": {}
}

{
  "name": "Bidding",
  "base": "PersistedModel",
  "strict": false,
  "idInjection": true,
  "options": {
    "validateUpsert": true
  },
  "properties": {
    "myuserId": {
      "type": "number"
    },
    "bookingId": {
      "type": "number"
    },
    "booking_no": {
      "type": "string"
    },
    "price": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "bid_date": {
      "type": "string"
    },
    "bid_time": {
      "type": "string"
    },
    "bid_status": {
      "type": "string"
    },
    "lang": {
      "type": "string"
    },
     "rate_driver": {
      "type": "number"
    },
    "created": {
      "type": "string"
    },
    "modified": {
      "type": "string"
    }
  },
  "validations": [],
  "relations": {
    "booking": {
      "type": "belongsTo",
      "model": "Booking",
      "foreignKey": "bookingId"
    },
    "myuser": {
      "type": "belongsTo",
      "model": "Myuser",
      "foreignKey": "myuserId"
    }
 
  },
  "acls": [],
  "methods": {}
}

于 2017-05-11T09:11:20.023 回答