是否可以为一个数据库表建立模型(客户端,供应商)? 我制作了一个合作伙伴模型,它使用了合作伙伴表。我的客户端和供应商模型继承自合作伙伴模型。
http://localhost:3000/api/partners
返回db表中的所有数据,但是
http://localhost:3000/api/vendors
没有任何结果。
供应商和客户几乎相同,只有他们的类型和其他两个属性不同。我希望从表格partner
获取所有类型'供应商'来自端点
http://localhost:3000/api/vendors
以及
中所有类型为client
的合作伙伴
http://localhost:3000/api/clients
(http://localhost:3000/api/partners
应隐藏)
修改 的模型/ vendor.js
{
"name": "vendor",
"base": "partner",
"strict": false,
"idInjection": false,
"options": {
"validateUpsert": true,
"postgresql": {
"table": "partner"
}
},
...
}
重新启动我的服务器之后我仍然得到:
{
"links": {
"self": "http://localhost:3000/api/vendors"
},
"data": []
}
在资源管理器中,我可以在partner
&#39> 模型架构
vendor
的属性
答案 0 :(得分:2)
是的。您只需要更新options on the models' config files以指向特定的表。确保您只识别每个模型中与该模型相关的属性(而不是另一个模型),然后您可以手动inject the type
before saving:
在common/models/partner.json
AND common/models/vendor.json
:
...
"options": {
"mysql": {
"table": "partner"
}
}
...
然后为每个模型的JS文件(before save
)添加common/models/vendor.js
挂钩:
module.exports = function(Vendor) {
Vendor.observe('before save', function(ctx, next) {
ctx.instance.type = 'vendor';
next();
});
};