使用
通过在模型定义上调用 .scope
来应用作用域,传递一个或多个作用域的名称. .scope
返回一个全功能的模型实例,它具有所有常规的方法:.findAll
,.update
,.count
,.destroy
等等.你可以保存这个模型实例并稍后再次使用:
const DeletedProjects = Project.scope('deleted');
DeletedProjects.findAll();
// 过一段时间
// 让我们再次寻找被删除的项目!
DeletedProjects.findAll();
作用域适用于 .find
, .findAll
, .count
, .update
, .increment
和 .destroy
.
可以通过两种方式调用作为函数的作用域. 如果作用域没有任何参数,它可以正常调用. 如果作用域采用参数,则传递一个对象:
Project.scope('random', { method: ['accessLevel', 19]}).findAll();
SELECT * FROM projects WHERE someNumber = 42 AND accessLevel >= 19