1 ````)" ``` 26 ``` GT @enum(value: ">") ``` 27 28 ``` "Greater than or equal operator (`>=`)" ``` 29 ``` GTE @enum(value: ">=") ``` 30 31 ``` "Less than operator (`<`)" ``` 32 ``` LT @enum(value: "<") ``` 33 34 ``` "Less than or equal operator (`<=`)" ``` 35 ``` LTE @enum(value: "<=") ``` 36 37 ``` "Simple pattern matching (`LIKE`)" ``` 38 ``` LIKE @enum(value: "LIKE") ``` 39 40 ``` "Negation of simple pattern matching (`NOT LIKE`)" ``` 41 ``` NOT_LIKE @enum(value: "NOT_LIKE") ``` 42 43 ``` "Whether a value is within a set of values (`IN`)" ``` 44 ``` IN @enum(value: "In") ``` 45 46 ``` "Whether a value is not within a set of values (`NOT IN`)" ``` 47 ``` NOT_IN @enum(value: "NotIn") ``` 48 49 ``` "Whether a value is within a range of values (`BETWEEN`)" ``` 50 ``` BETWEEN @enum(value: "Between") ``` 51 52 ``` "Whether a value is not within a range of values (`NOT BETWEEN`)" ``` 53 ``` NOT_BETWEEN @enum(value: "NotBetween") ``` 54 55 ``` "Whether a value is null (`IS NULL`)" ``` 56 ``` IS_NULL @enum(value: "Null") ``` 57 58 ``` "Whether a value is not null (`IS NOT NULL`)" ``` 59 ``` IS_NOT_NULL @enum(value: "NotNull") ``` 60 ```} ``` 61 ```GRAPHQL; ``` 62 ``` } ``` 63 64 1 ``` public function default(): string ``` 65 ``` { ``` 66 1 ``` return 'EQ'; ``` 67 ``` } ``` 68 69 1 ``` public function defaultHasOperator(): string ``` 70 ``` { ``` 71 1 ``` return 'GTE'; ``` 72 ``` } ``` 73 74 1 ``` public function applyConditions(\$builder, array \$whereConditions, string \$boolean) ``` 75 ``` { ``` 76 1 ``` \$column = \$whereConditions['column']; ``` 77 78 ``` // Laravel's conditions always start off with this prefix ``` 79 1 ``` \$method = 'where'; ``` 80 81 ``` // The first argument to conditions methods is always the column name ``` 82 1 ``` \$args = [\$column]; ``` 83 84 ``` // Some operators require calling Laravel's conditions in different ways ``` 85 1 ``` \$operator = \$whereConditions['operator']; ``` 86 1 ``` \$arity = \$this->operatorArity(\$operator); ``` 87 88 1 ``` if (\$arity === 3) { ``` 89 ``` // Usually, the operator is passed as the second argument to the condition ``` 90 ``` // method, e.g. ->where('some_col', '=', \$value) ``` 91 1 ``` \$args[] = \$operator; ``` 92 ``` } else { ``` 93 ``` // We utilize the fact that the operators are named after Laravel's condition ``` 94 ``` // methods so we can simply append the name, e.g. whereNull, whereNotBetween ``` 95 1 ``` \$method .= \$operator; ``` 96 ``` } ``` 97 98 1 ``` if (\$arity > 1) { ``` 99 ``` // The conditions with arity 1 require no args apart from the column name. ``` 100 ``` // All other arities take a value to query against. ``` 101 1 ``` if (! array_key_exists('value', \$whereConditions)) { ``` 102 1 ``` throw new Error( ``` 103 1 ``` self::missingValueForColumn(\$column) ``` 104 ``` ); ``` 105 ``` } ``` 106 107 1 ``` \$args[] = \$whereConditions['value']; ``` 108 ``` } ``` 109 110 ``` // The condition methods always have the `\$boolean` arg after the value ``` 111 1 ``` \$args[] = \$boolean; ``` 112 113 1 ``` return \$builder->{\$method}(...\$args); ``` 114 ``` } ``` 115 116 1 ``` protected function operatorArity(string \$operator): int ``` 117 ``` { ``` 118 1 ``` if (in_array(\$operator, ['Null', 'NotNull'])) { ``` 119 1 ``` return 1; ``` 120 ``` } ``` 121 122 1 ``` if (in_array(\$operator, ['In', 'NotIn', 'Between', 'NotBetween'])) { ``` 123 1 ``` return 2; ``` 124 ``` } ``` 125 126 1 ``` return 3; ``` 127 ``` } ``` 128 ```} ```

Read our documentation on viewing source code .