Oihana PHP Arango

buildInlineFilterCondition.php

Table of Contents

Functions

buildInlineFilterCondition()  : string
Build inline filter condition for array expansion.

Functions

buildInlineFilterCondition()

Build inline filter condition for array expansion.

buildInlineFilterCondition(string $field, string $operator, mixed $value, array<string|int, mixed>|null &$binds[, mixed $alt = null ]) : string

Generates an AQL condition for use within array inline filtering syntax (CURRENT.field). Handles null values specially (no binding) and binds other values for security.

An optional $alt chain wraps the compared field (left, CURRENT.<field>) and/or the bound value (right) — same alt:{key,val} / val:true mirror vocabulary as the flat filters — so case-insensitive matches work inside the array expansion (LOWER(CURRENT.email) == LOWER(@v)).

Parameters
$field : string

The field name (e.g., "email")

$operator : string

The comparison operator (e.g., "eq", "ne", "like")

$value : mixed

The value to compare against

$binds : array<string|int, mixed>|null

Bind variables array

$alt : mixed = null

The alt transformation (string/list = field only, object {key,val} = both sides); null for none.

Tags
throws
BindException

If binding fails

UnsupportedOperationException

If an alt chain is invalid

example
// Check for non-null email
$condition = buildInlineFilterCondition("email", "ne", null, $binds);
// → "CURRENT.email != null"

// Check for specific email
$condition = buildInlineFilterCondition("email", "eq", "john@doe.com", $binds);
// → "CURRENT.email == @bind_xxx"

// Case-insensitive, both sides
$condition = buildInlineFilterCondition("email", "eq", "JOHN@DOE.COM", $binds, ['key'=>'lower','val'=>true]);
// → "LOWER(CURRENT.email) == LOWER(@bind_xxx)"

// Usage in array expansion
$aql = "doc.contacts[* FILTER {$condition}]";
since
1.0.0
author

Marc Alcaraz

Return values
string

The inline filter condition (e.g., "CURRENT.email != null")

On this page

Search results