Следующее работает, если не используется область действия:
where = {};
...
case c: {
where = Sequelize.where(Sequelize.fn('concat', Sequelize.col('firstName'), ' ', Sequelize.col('lastName')), {
like: '% John Doe %'
})
}
Model.findAll({
where: where
})
Но не как функция области действия:
scopes: {
field: function (field, keyword = '%%') {
let where = {};
switch (field.toLowerCase()) {
case 'id':
where.id = {[Op.like]: keyword};
break;
case 'email':
where.email = {[Op.like]: keyword};
break;
case 'name' :
where = sequelize.where(sequelize.fn('concat', sequelize.col('first_name'), ' ', sequelize.col('last_name')), {
[Op.like]: keyword
});
}
return {
where
}
},
}
получение этой ошибки:
Неизвестный столбец 'User.attribute' в 'предложении where'
console.log(where)
:
Where {
attribute: Fn { fn: 'concat', args: [ [Col], ' ', [Col] ] },
comparator: '=',
logic: { [Symbol(like)]: '%%' }
}
кто-нибудь сталкивался ранее?