我有三個模型,我試圖定義它們之間的關係。在續集中聲明關係?
型號: 用戶 付款 債務人
- 用戶有許多付款
- 付款屬於用戶
- 付款有許多債務人
- 債務人屬於支付
- 債務人屬於付款
我需要在源和目標中定義關係嗎?即
User.hasMany(Payment, {as: 'Payments'})
也
Payment.belongsTo(User)
或者我可以只用其定義在一個模型中脫身?
我試圖在兩者中定義它時都會出現錯誤。我導入的模型是undefined
,因此當我嘗試將它傳遞到「belongsTo()」或「hasMany()」函數時,出現錯誤called with something that's not an instance of Sequelize.Model
當我只將它包含在一個模型中時,關係正確。
我的型號如下:
付款模式:
import { sequelize } from '../config';
import Sequelize from 'sequelize';
import User from './User';
const Payment = sequelize.define('payment', {
amount: {
type: Sequelize.FLOAT
},
reference: {
type: Sequelize.STRING
},
user_id: {
type: Sequelize.INTEGER
}
});
Payment.belongsTo(User)
export default Payment;
用戶模式:
import { sequelize } from '../config';
import Sequelize from 'sequelize';
import Payment from './Payment';
const User = sequelize.define('user', {
email: {
type: Sequelize.STRING
},
username: {
type: Sequelize.STRING
},
firstName: {
type: Sequelize.STRING
},
lastName: {
type: Sequelize.STRING
},
facebookID: {
type: Sequelize.STRING
}
});
User.hasMany(Payment, {as: 'Payments'})
export default User;
//編輯
當我嘗試創建一個新用戶付款,我得到錯誤payment is not associated to user!
exports.create = (req, res) => {
User.create({
email: '[email protected]',
firstName: "Test",
lastName: "Test",
username: 'fnord',
payment: [
{ amount: 10.00},
]
}, {
include: [ Payment ]
})
}
我仍然收到「付款不與用戶關聯!」。我嘗試過使用sequelize-cli並啓動項目。但是sequelize-cli真的需要嗎?我並不想要所有附帶的東西,例如播種機和遷移等。 – Stretch0
你從哪裏得到這種「支付與用戶錯誤沒有關聯?你能用導致它的部分代碼編輯問題嗎?如果涉及'sequelize-cli'當然不是必需的 - 你可以繼續下去 - 但要記住循環依賴。更重要的是,在更改數據庫表時,您稍後需要遷移。 – piotrbienias
已添加導致錯誤的代碼。我試圖創建一個新的用戶付款,但我相信沒有關係設置,所以它不會讓我。 – Stretch0