在Vapor中链接多个查询过滤器 - 服务器端Swift

时间:2017-03-14 06:14:22

标签: swift vapor server-side-swift

我们可以在steam中应用一个简单的查询过滤器:

// User is my model object connecting corresponding MySQL database table
let aUser = try User.query().filter("user_email", "asd@example.com")

我们如何使用AND或OR条件链接多个查询过滤器,就像我们在SQL查询中一样?

比如说,如果我们需要加入filter("user_email", "asd@example.com")filter("user_password", "123456") AND条件,我们怎样才能实现呢?

1 个答案:

答案 0 :(得分:2)

据我所知,.filter函数在检查过滤条件后抛出一个bool。因此,您可以尝试将两个条件与逻辑AND运算符组合在一起。要获得正确的解决方案,最好知道对象User的结构和属性:但建议如下:

    let aUser = User.query().filter { condition1 && condition2 }

如果BOTH条件为真,则Filter只会将User.query()的元素传递给aUser。确保User.query()是一个数组,并且在条件中使用$ 0引用当前对象。过滤器函数也将返回一个数组。