final class Predicates
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.

Predicate effects, retaining Laravel's clause and binding order.

A comparison value that is not a literal null is compiled as a bound placeholder, and a list whose contents are unknown as a placeholder list of unknown length. Laravel's null normalization and empty-set constants are reconstructed from literals only, since the null and emptiness guards that usually precede such calls are not evaluated.

Methods§

public function __construct(private Grammar $grammar)

Uses the configured framework SQL grammar.

Parameters

$grammarGrammar
public function apply(QueryState $state, string $method, list<Domain> $arguments): ?QueryState

Parameters

$stateQueryState
$methodstring
$argumentslist<Domain>A recognized predicate, or null for a different operation.

Returns

Test cases 2
Called from 1
Calls 8
public function add(
    QueryState $state,
    Domain $sql,
    list<Domain> $bindings,
    string $boolean = 'and',
): QueryState

Parameters

$stateQueryState
$sqlDomain
$bindingslist<Domain>Appends one predicate and the values it binds.
$booleanstring

Returns

Test cases 1
Called from 11
Calls 3
public function groupDisjunction(QueryState $state): QueryState

Groups existing disjunctions before a global scope adds its predicate.

Parameters

Returns

Test cases 1
Called from 1
Calls 7
public function basic(QueryState $state, list<Domain> $arguments, string $boolean): QueryState

Parameters

$stateQueryState
$argumentslist<Domain>A scalar comparison, including Laravel's null normalization.
$booleanstring

Returns

Test cases 5
Called from 5
Calls 11
public function comparison(list<Domain> $arguments): array{Domain, list<Domain>}|null

Parameters

$argumentslist<Domain>

Returns

array{Domain, list<Domain>}|null A column, operator and bound value, or null for an unmodelled form.
Test cases 1
Called from 2
Calls 9
public function group(QueryState $state, ArrayTerm $entries, string $boolean): QueryState

An array of comparisons, nested in parentheses the way Laravel adds them.

Parameters

$stateQueryState
$entriesArrayTerm
$booleanstring

Returns

Test cases 1
Called from 1
Calls 6
public function entry(QueryState $inner, ArrayEntry $entry, string $boolean): QueryState

One entry of a where array: a column keyed value, or a positional argument list.

Parameters

$innerQueryState
$entryArrayEntry
$booleanstring

Returns

Test cases 1
Called from 1
Calls 7
public function between(
    QueryState $state,
    list<Domain> $arguments,
    string $boolean,
    bool $not,
): QueryState

Parameters

$stateQueryState
$argumentslist<Domain>An ordered pair of bounds.
$booleanstring
$notbool

Returns

Test cases 1
Called from 1
Calls 10
public function column(QueryState $state, list<Domain> $arguments, string $boolean): QueryState

Parameters

$stateQueryState
$argumentslist<Domain>A comparison between identifiers.
$booleanstring

Returns

Test cases 1
Called from 1
Calls 7
public function raw(QueryState $state, list<Domain> $arguments, string $boolean): QueryState

Parameters

$stateQueryState
$argumentslist<Domain>Explicit SQL with its bindings, one per placeholder when the array is unknown.
$booleanstring

Returns

Test cases 1
Called from 1
Calls 6

Private surface 2§

Implementation details, listed for orientation only.

private const OPERATORS = ['=', '<', '>', '<=', '>=', '<>', '!=', 'like', 'not like']
private Grammar $grammar

Test cases 23§

Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.

Dedicated tests 16
Other tests reaching this symbol 7

Relations§

Instantiated in 8
Method calls 11