Lodata contains an expression parser in
\Flat3\Lodata\Expression that handles both
$filter expressions. The
parser decodes the incoming expression into an abstract syntax tree (opens new window). During
entity set query processing the entity set driver will be passed every element of the tree in the correct parsing order, enabling it
to convert the OData query into a native query such as an SQL query.
Because not every possible OData function or operation is supported by every Laravel database driver, or the internal semantics of the underlying database do not support the required data types, then a "Not Supported" exception may be thrown by some database drivers and not others.
The behaviour of both the
$filter parameters can be overridden by extending the driver class, and the relevant methods.