queryTranslator()
queryTranslator( $type)
Parameters
$type |
_registerDatFieldForSorting(\Lqdt\OrmJson\Database\Dialect\string $datfield, \Lqdt\OrmJson\Database\Dialect\string $model, array $aliases, \Cake\Database\Query $query)
\Lqdt\OrmJson\Database\Dialect\string | $datfield | |
\Lqdt\OrmJson\Database\Dialect\string | $model | |
array | $aliases | |
\Cake\Database\Query | $query |
_extractDatField(\Lqdt\OrmJson\Database\Dialect\string $datfield, \Lqdt\OrmJson\Database\Dialect\string $alias, array $fields, \Cake\Database\Query $query)
\Lqdt\OrmJson\Database\Dialect\string | $datfield | |
\Lqdt\OrmJson\Database\Dialect\string | $alias | |
array | $fields | |
\Cake\Database\Query | $query |
_filtersConverter(string|\Cake\Database\ExpressionInterface $expression, \Cake\Database\Query $query)
Returns the appropriate ExpressionInterface regarding the incoming one
string|\Cake\Database\ExpressionInterface | $expression | Incoming expression |
\Cake\Database\Query | $query |
_rawSqlConverter(string $expression, \Cake\Database\Query $query) : \Cake\Database\Expression\QueryExpression
Returns a new QueryExpression built upon the parsing of the expression to update datfield names
string | $expression | Raw expression to transform |
\Cake\Database\Query | $query |
QueryExpression
_comparisonConverter(\Cake\Database\Expression\Comparison $expression, \Cake\Database\Query $query) : \Cake\Database\Expression\Comparison|\Cake\Database\Expression\QueryExpression
Update or replace the Comparison expression to perform comparisons on datFields. In some cases, PDO limitations implies to replace the expression with a raw SQL fragment. It can be a bit dangerous when using raw user input to perform global matching in `array` mode.
Regular fields expressions are left as is.
\Cake\Database\Expression\Comparison | $expression | Comparison expression |
\Cake\Database\Query | $query |
Updated expression
_unaryExpressionConverter(\Cake\Database\Expression\UnaryExpression $expression, \Cake\Database\Query $query) : \Cake\Database\Expression\UnaryExpression
Parses the unary expression to apply conversions on childrens and returns an updated UnaryExpression
Note : This a VERY hacky way because the UnaryExpression class doesn't expose
getter/setter for protected _value
property.
In this implementation, it causes an infinite loop when used directly with a SQL fragment :
['NOT' => 'sub.prop@datfield like "%buggy%"]
That's why, an exception is thrown as soon as $value is extracted
\Cake\Database\Expression\UnaryExpression | $expression | Expression |
\Cake\Database\Query | $query |
New expression
_queryExpressionConverter(\Cake\Database\Expression\QueryExpression $expression, \Cake\Database\Query $query) : \Cake\Database\Expression\QueryExpression
Iterates over a QueryExpression and replace Comparison expressions to handle JSON comparison in datfields.
\Cake\Database\Expression\QueryExpression | $expression | QueryExpression |
\Cake\Database\Query | $query |
Updated QueryExpression