В 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
}
}
...
}
Как вы справиться с этой ситуацией в Loopback?
Не знаете, с какими проблемами вы сталкиваетесь, но то, что я делаю, просто называет отношение таким же, как родственная модель, за исключением camelCase вместо MixedCase. например 'CustomerAccount hasMany Project', отношение называется' project'. И наоборот, в 'Project принадлежит CustomerAccount', это отношение называется' customerAccount'. Возможно, это не то, что вы ищете, но это работает для меня, так что, возможно, это вариант. – Acapulco
Если я правильно помню, мы ранее сталкивались с проблемами, когда внедренная модель не испускалась при сериализации родительской модели. Я думаю, это потому, что данные 'model.embedded' переопределяли функцию' model.embedded() ' – JBCP
По моему опыту, нет. Связанная модель рассматривается как новое свойство, поэтому, если вы используете одно и то же имя, один из них будет потерян. –