簡體   English   中英

BookhshelfJS:附加一對一關系

[英]BookhshelfJS: Attaching One-to-One relationship

我有兩個表, UserAddress 我的表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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM