gpt4 book ai didi

bookshelf.js - 使用 UpdatePivot 附加 "Not Null"列

转载 作者:行者123 更新时间:2023-12-04 05:08:41 26 4
gpt4 key购买 nike

使用 bookshelfjs,我想将记录添加到包含附加的、不可为空的列的连接表中。

例如,users 表和accounts 表将有一个accounts_users 连接表。

var Account = Bookshelf.Model.extend({
tableName: 'accounts'
});

var User = Bookshelf.Model.extend({

tableName: 'users',

accounts: function () {
return this.belongsToMany(Account);
}
});

连接表还有一列“order” NOT NULL。
CREATE TABLE accounts_users
(
account_id integer NOT NULL,
user_id integer NOT NULL,
"order" integer NOT NULL,
CONSTRAINT accounts_users_account_id_foreign FOREIGN KEY (account_id)
REFERENCES accounts (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT accounts_users_user_id_foreign FOREIGN KEY (user_id)
REFERENCES users (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)

是否可以将用户中的记录附加到帐户中的记录,并同时设置订单值?

每个都可以使用以下方法单独完成:
user.related("accounts").attach(<USER_ID>);


user.related("accounts").updatePivot({order: 1}); // with WHERE clause.

单独运行每个命令将失败,因为第一个将不满足 NOT NULL 限制。有没有办法使用书架一起执行这两个命令?使用 Knex.Raw 可以轻松完成,但如果可能,我想使用书架来完成。

最佳答案

您可以将名称/值对传递到 .attach 以在连接表记录上设置这些值。请参阅此 GitHub 问题第一部分中的示例:

https://github.com/tgriesser/bookshelf/issues/134

user.related('accounts').attach({ account_id: 42, user_id: 84, order: 1})

关于bookshelf.js - 使用 UpdatePivot 附加 "Not Null"列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22139723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com