我有一个包含2个字段的架构。一个记录用户,另一个是基于第一个字段的虚拟字段。
use App\Category;
我试着做
sequelize.define("Invoice", {
is_processing_by: {
type: DataTypes.INTEGER,
references: "usertable",
referencesKey: "id",
allowNull: false
},
is_processing: {
type: DataTypes.VIRTUAL,
get: function() {
return this.get("is_processing_by")
}
}
}
但它给了我一个错误:
Invoice.find({where: {is_processing: 123}})
有谁知道发生了什么?谢谢。
答案 0 :(得分:0)
对于所有为此苦苦挣扎的人(就像我以前一样),您可以只使用原始SQL的一部分来创建虚拟列,并使用它对行进行排序。像这样:
const { literal } = require('sequelize')
...
const attributes = Object.keys(Users.rawAttributes)
const users = await Users({
attributes: [
...attributes,
[literal(`
coalesce(
nickname,
concat("firstName", ' ', "lastName")
)
`),
'name']
],
...
order: [[literal('"name"'), 'asc']]
})
希望可以帮助某人;)