1
在Loopback documentation关系总是比它们存储在属性不同的名称,例如:在这种情况下PersistedModel关系名称可以与属性名称相同吗?
{
"name": "Customer",
"base": "PersistedModel",
"idInjection": true,
"properties": {
"name": {
"type": "string"
}
},
"relations": {
"address": {
"type": "embedsOne",
"model": "Address",
"property": "billingAddress",
"options": {
"validate": true,
"forceId": false
}
}
...
}
注意address
关系为billingAddress
的属性。相反,当我们使用address
的属性时,情况似乎会中断。
有时很难想出一个任意的形容词前置于属性。例如,假设关系是一个已经叫做BillingAddress
而不是Address
的模型。想要命名关系和属性billingAddress
是自然的。
例如:
{
"name": "Customer",
"base": "PersistedModel",
"idInjection": true,
"properties": {
"name": {
"type": "string"
}
},
"relations": {
"billingAddress": {
"type": "embedsOne",
"model": "BillingAddress",
"property": "billingAddress",
"options": {
"validate": true,
"forceId": false
}
}
...
}
你是如何处理的回送这种情况呢?
不知道你面临什么样的问题,但我所做的只是将关系命名为与相关模型相同,除了在camelCase而不是MixedCase中。例如'CustomerAccount hasMany Project',关系被称为'project'。反过来,在'项目属于CustomerAccount'中,关系被称为'customerAccount'。这可能不是你正在寻找的东西,但它适用于我,所以也许这是一个选择。 – Acapulco
如果我记得正确的话,我们以前遇到嵌入式模型在您序列化父模型时未被发射的问题。我认为这是因为数据'model.embedded'覆盖了函数'model.embedded()' – JBCP
根据我的经验,没有。相关模型被视为一个新的属性,所以如果您使用相同的名称,其中一个将会丢失。 –