FilteredRequest

The protocol for all requests that can be filtered.

  • Creates a request with the provided predicate promise added to the eventual set of already applied predicates.

    // SELECT * FROM player WHERE 1
    var request = Player.all()
    request = request.filterWhenConnected { db in true }
    

FilteredRequest

  • filter(_:) Extension method

    Creates a request with the provided predicate added to the eventual set of already applied predicates.

    // SELECT * FROM player WHERE email = 'arthur@example.com'
    var request = Player.all()
    request = request.filter(Column("email") == "arthur@example.com")
    
  • filter(sql:arguments:) Extension method

    Creates a request with the provided predicate added to the eventual set of already applied predicates.

    // SELECT * FROM player WHERE email = 'arthur@example.com'
    var request = Player.all()
    request = request.filter(sql: "email = ?", arguments: ["arthur@example.com"])
    
  • filter(literal:) Extension method

    Creates a request with the provided predicate added to the eventual set of already applied predicates.

    Literals allow you to safely embed raw values in your SQL, without any risk of syntax errors or SQL injection:

    // SELECT * FROM player WHERE name = 'O''Brien'
    let name = "O'Brien"
    var request = Player.all()
    request = request.filter(literal: "email = \(email)")
    
  • none() Extension method

    Creates a request that matches nothing.

    // SELECT * FROM player WHERE 0
    var request = Player.all()
    request = request.none()