\Lqdt\OrmJson\DatabaseDatFieldDriverInterface

Summary

Methods
Constants
isDatField()
translateExpression()
translateDatField()
translateSetDatField()
No constants found
No protected methods found
N/A
No private methods found
N/A

Methods

isDatField()

isDatField(mixed  $datfield): integer

Utility function to check if a field is datfield in driver It must detect unstranslated and already translated datfield as well

Parameters

mixed $datfield

Field name

Returns

integer —

0 if not a datfield, 1 for v1 notation, 2 for v2 notation, 3 for DatfieldExpression

translateExpression()

translateExpression(string|array|\Cake\Database\ExpressionInterface  $expression,\Cake\Database\Query  $query,\Lqdt\OrmJson\Database\JsonTypeMap  $jsonTypes): string|array|\Cake\Database\ExpressionInterface

Applies datfield translation to any expression or SQL snippets

Parameters

string|array|\Cake\Database\ExpressionInterface $expression

Literal or object expression

\Cake\Database\Query $query

Query

\Lqdt\OrmJson\Database\JsonTypeMap $jsonTypes

JSON types definition

Returns

string|array|\Cake\Database\ExpressionInterface —

Updated expression

translateDatField()

translateDatField(array|string|\Cake\Database\ExpressionInterface  $datfield,boolean  $unquote = false,string|null|false  $repository = null): array|string|\Cake\Database\ExpressionInterface

Translates a datfield notation into a valid driver dependent SQL FunctionExpression that allows to identify and target data into a JSON field.

If a repository is prepended to datfield, il will be kept as is unless passing false as last argument

Parameters

array|string|\Cake\Database\ExpressionInterface $datfield

Datfield

boolean $unquote

If true, returned data should be unquoted

string|null|false $repository

Repository alias

Returns

array|string|\Cake\Database\ExpressionInterface

translateSetDatField()

translateSetDatField(\Cake\Database\Expression\ComparisonExpression  $expr,\Cake\Database\Query  $query,\Lqdt\OrmJson\Database\JsonTypeMap  $map): \Cake\Database\Expression\ComparisonExpression

Translates a SET comparison expression to directly update JSON data based on datfield

It is used for UPDATE statements

Parameters

\Cake\Database\Expression\ComparisonExpression $expr

Expression

\Cake\Database\Query $query

Query

\Lqdt\OrmJson\Database\JsonTypeMap $map

JSON type map

Returns

\Cake\Database\Expression\ComparisonExpression —

Updated expression