resolveWhenElse.php
Table of Contents
Functions
- resolveWhenElse() : string
- Resolve the `Field::ELSE` branch of a conditional field into an AQL expression.
Functions
resolveWhenElse()
Resolve the `Field::ELSE` branch of a conditional field into an AQL expression.
resolveWhenElse([mixed $else = null ][, string $doc = AQL::DOC ]) : string
Two forms:
- Attribute reference —
[ Field::PROPERTY => '<attr>' ]→doc.<attr>(validated by assertAttributeName()), so the fallback can mirror another document attribute. - Literal — anything else (a scalar, an array of scalars, or
null— the default) is inlined via aqlValue().
⚠️ A string literal is quoted by aqlValue() unless it already looks like AQL — which is
deliberate (it is what lets a condition compare two attributes, [ 'price', 'gt', 'doc.minPrice' ]). A few real-world literals fall into that net: 'N/A' and 'en/US' have
the shape of a document handle (collection/key) and are emitted raw, which ArangoDB then
reads as code and refuses (error 1203). Declare an ambiguous literal — one containing a /
or a . — with betweenQuotes(), the explicit « this really is a
string » form, which passes through untouched:
Field::ELSE => betweenQuotes( 'N/A' ) , // → : 'N/A'
Parameters
- $else : mixed = null
-
The
Field::ELSEdescriptor (defaultnull). - $doc : string = AQL::DOC
-
The document reference (default:
AQL::DOC).
Tags
Return values
string —The AQL expression for the else branch (null, 0, 'unknown', doc.basePrice, …).