【问题标题】:Chaining Multiple Query Filters in Vapor - Server Side Swift在 Vapor 中链接多个查询过滤器 - 服务器端 Swift
【发布时间】:2017-08-04 08:55:51
【问题描述】:

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

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

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

例如,如果我们需要将filter("user_email", "asd@example.com")filter("user_password", "123456")AND 条件连接起来,我们该如何实现呢?

【问题讨论】:

    标签: swift vapor server-side-swift


    【解决方案1】:

    据我所知,.filter 函数在检查过滤条件后会抛出一个布尔值。因此,您可以尝试将两个条件与逻辑 AND 运算符结合起来。要获得适当的解决方案,最好了解对象用户的结构和属性:但建议是:

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

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

    【讨论】:

    • 感谢@Procra 的回答。我会试试这个然后回来。
    • 请问你用的是哪个版本的swift?我目前正在使用 swift 3,其中一些旧的众所周知的 Objective-c 模式已被弃用,因此 .filter 的语法可能会有所不同。
    • 我在 3.0.1 :)
    • 那么它应该可以通过将它们写在大括号 B) 中来过滤更多条件
    猜你喜欢
    • 1970-01-01
    • 2013-02-03
    • 2019-08-02
    • 2020-04-08
    • 1970-01-01
    • 2017-06-13
    • 2019-09-20
    • 1970-01-01
    • 2019-08-13
    相关资源
    最近更新 更多