[英]BookhshelfJS: Attaching One-to-One relationship
我有兩個表, User
和Address
。 我的表User
有兩種方法:
shippingAddress: function() {
var Address = require(appRoot + '/config/db').model('Address');
return this.belongsTo(Address, 'shipping_address_id');
},
billingAddress: function() {
var Address = require(appRoot + '/config/db').model('Address');
return this.belongsTo(Address, 'billing_address_id');
}
我該如何附加一個Address
說我的shippingAddress
? 我嘗試了以下方法:
new Address(addressQuery)
.fetch()
.then(function (address) {
new User(userQuery)
.fetch()
.then(function (user) {
// Nothing here works
// I tried the following:
user.shippingAddress().attach(address); // Attach is not defined
user.shippingAddress().sync(address); // Nothing happens
user.shippingAddress().set(address); // Nothing happens
user.save();
});
});
我唯一能做的是:
user.attributes.shipping_address_id = address.id;
user.save();
這不是一個非常優雅的解決方案。 我究竟做錯了什么?
首先,將關系列表設置為“ withRelated”
new User(userQuery)
.fetch({
withRelated:['shippingAddress']
})
.then(function (user) {
然后,您可以執行以下操作:
user.related('shippingAddress').set(...).save();
確保shippingAddress()不是用戶模型中的“靜態”函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.