Класс QueryExpression
Представляет выражение SQL-запроса. Внутренне он хранит дерево выражений, которое может быть скомпилировано путём преобразования этого объекта в строку и будет содержать правильно скобочное и вложенное выражение.
- Cake\Database\Expression\QueryExpression реализует Cake\Database\ExpressionInterface, Countable использует Cake\Database\TypeMapTrait
Прямые подклассы
Краткое описание свойств
-
$_conditionsprotectedarrayСписок строк или других объектов выражений, представляющих «ветви» дерева выражений. Например, один ключ массива может выглядеть как «sum > :value»
-
$_conjunctionprotectedstringСтрока, используемая для объединения каждого из внутренних выражений, хранящихся в этом объекте, например, «И», «ИЛИ» и т. д.
Наследованные свойства
Краткое описание методов
- __call() publicПомогает вызывать методы
and()иor()прозрачно. - __clone() publicКлонирует этот объект и его поддерево выражений.
- __construct() public
Конструктор. Новый объект выражения может быть создан без параметров и построен динамически. В противном случае можно передать массив условий, содержащий либо структуру массива в виде дерева для разбора, либо другие объекты выражений. Дополнительно можно задать ключевое слово союза, используемое для объединения каждой части этого уровня дерева выражений.
- _addConditions() protected
Вспомогательная функция, используемая для разложения вложенного массива условий и построения древовидной структуры внутри этого объекта для представления полного выражения SQL. Строковые условия хранятся непосредственно в условиях, в то время как любые другие представления обернуты соответствующим экземпляром или этого класса.
- _calculateType() protectedВозвращает имя типа для переданного поля, если оно было сохранено в typeMap.
- _parseCondition() protected
Разбирает строковые условия, пытаясь извлечь оператор внутри них, если таковой имеется, и, наконец, возвращает либо соответствующий объект QueryExpression, либо обычное строковое представление условия. Эта функция отвечает за создание заготовок и замену значений на них, сохраняя значение в другом месте для последующей привязки.
- add() public
Добавляет одно или несколько условий к этому объекту выражения. Условия могут быть выражены в одномерном массиве, что приведет к добавлению всех условий непосредственно на этом уровне дерева, или они могут быть произвольно вложены, создавая более объекты выражений, которые будут вложены внутри и сконфигурированы для использования указанного союза.
- addCase() publicДобавляет новое выражение case к объекту выражения.
- and_() public
Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает союз на «И»
- between() public
Добавляет новое условие к объекту выражения в форме «поле BETWEEN от И до».
- count() public
Возвращает количество внутренних условий, хранящихся в этом выражении. Полезно определить, является ли этот объект выражения пустым или он сгенерирует непустую строку при компиляции
- eq() publicДобавляет новое условие к объекту выражения в форме «поле = значение».
- equalFields() publicСтроит равное условие или присваивание с обертыванием идентификатора.
- exists() publicДобавляет новое условие к объекту выражения в форме «СУЩЕСТВУЕТ (...)».
- getConjunction() publicПолучает текущий сконфигурированный союз для условий на этом уровне дерева выражений.
- gt() publicДобавляет новое условие к объекту выражения в форме «поле > значение».
- gte() publicДобавляет новое условие к объекту выражения в форме «поле >= значение».
- hasNestedExpression() public
Возвращает true, если это выражение содержит другие вложенные объекты ExpressionInterface.
- in() public
Добавляет новое условие к объекту выражения в форме «поле IN (значение1, значение2)».
- isCallable() publicПроверяет, является ли вызываемый объект приемлемым.
- isNotNull() publicДобавляет новое условие к объекту выражения в форме «поле НЕ NULL».
- isNull() publicДобавляет новое условие к объекту выражения в форме «поле IS NULL».
- iterateParts() publicВыполняет функцию обратного вызова для каждой из частей, формирующих это выражение.
- like() publicДобавляет новое условие к объекту выражения в форме «поле LIKE значение».
- lt() publicДобавляет новое условие к объекту выражения в форме «поле < значение».
- lte() publicДобавляет новое условие к объекту выражения в форме «поле <= значение».
- not() public
Добавляет новый набор условий на этот уровень дерева и инвертирует конечный результат, добавив NOT, он будет выглядеть как «НЕ ( (условие1) И (условия2) )» союз зависит от текущего, сконфигурированного для этого объекта.
- notEq() publicДобавляет новое условие к объекту выражения в форме «поле != значение».
- notExists() publicДобавляет новое условие к объекту выражения в форме «НЕ СУЩЕСТВУЕТ (...)».
- notIn() public
Добавляет новое условие к объекту выражения в форме «поле НЕ В (значение1, значение2)».
- notLike() publicДобавляет новое условие к объекту выражения в форме «поле НЕ LIKE значение».
- or_() public
Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает союз на «ИЛИ»
- setConjunction() publicИзменяет союз для условий на этом уровне дерева выражений.
- sql() public
Возвращает строковое представление этого объекта, чтобы он мог быть использован в запросе SQL. Обратите внимание, что значения условий не включены в строку, вместо них подставлены заготовки, которые могут быть заменены соответствующими значениями в кавычках.
-
Изменяет союз для условий на этом уровне дерева выражений. Если вызывается без аргументов, возвращает текущее значение.
- traverse() public
Обходит структуру дерева этого выражения запроса, выполняя функцию обратного вызова для каждого из условий, которые включены в этот объект. Полезно для компиляции окончательного выражения или для интроспекции структуры.
- Обратная совместимость обертки для tieWith()
Подробное описание метода
__call()source public
__call( string $method , array $args )
Помогает вызывать методы and() и or() прозрачно.
Параметры
- строка
$method - Имя метода.
- массив
$args - Аргументы, которые нужно передать методу.
Возвращает
Cake\Database\Expression\QueryExpressionИсключения
BadMethodCallException__construct()source public
__construct( string|array|Cake\Database\ExpressionInterface $conditions = [] , array|Cake\Database\TypeMap $types = [] , string $conjunction = 'AND' )
Конструктор. Новый объект выражения может быть создан без параметров и динамически построен. В противном случае можно передать массив условий, содержащий либо древовидную структуру массива для разбора, либо другие объекты выражения. Дополнительно можно установить ключевое слово конъюнкции для объединения каждой части этого уровня древа выражения.
Параметры
- строка|массив|
Cake\Database\ExpressionInterface$conditionsнеобязательно [] древовидная структура массива, содержащая все условия, которые необходимо добавить или вложить в этот объект выражения.
- массив|
Cake\Database\TypeMap$typesнеобязательно [] ассоциативный массив типов, которые необходимо связать со значениями, переданными в $conditions.
- строка
$conjunctionнеобязательно 'И' связующее слово, которое будет объединять все строковые условия на этом уровне древа выражения. Например, "И", "ИЛИ", "ИСКЛЮЧАЮЩЕЕ ИЛИ"...
См. также
\Cake\Database\Expression\QueryExpression::add() для получения более подробной информации о $conditions и $types_addConditions()source protected
_addConditions( array $conditions , array $types )
Вспомогательная функция, используемая для разложения вложенного массива условий и построения древовидной структуры внутри этого объекта для представления полного выражения SQL. Строковые условия хранятся непосредственно в условиях, а все другие представления оборачиваются в соответствующий экземпляр или в этом классе.
Параметры
- массив
$conditions - список условий, которые необходимо сохранить в этом объекте
- массив
$types - список типов, связанных с полями, на которые ссылаются в $conditions
_calculateType()source protected
_calculateType( string|Cake\Database\Expression\IdentifierExpression $field )
Возвращает имя типа для переданного поля, если оно было сохранено в typeMap
Параметры
- строка|
Cake\Database\Expression\IdentifierExpression$field - Имя поля, для которого необходимо получить тип.
Возвращает
строка|nullВычисленный тип или null, если тип неизвестен.
_parseCondition()source protected
_parseCondition( string $field , mixed $value )
Разбирает строковые условия, пытаясь извлечь оператор внутри них, если таковой имеется, и в конечном итоге возвращает либо соответствующий объект QueryExpression, либо обычное строковое представление условия. Эта функция отвечает за генерацию заполнителей и замену значений на них, сохраняя значение в другом месте для будущей привязки.
Параметры
- строка
$field Значение, из которого будет извлечено фактическое поле и оператор.
- смешанное
$value - Значение, которое должно быть привязано к заполнению для поля
Возвращает
строка|Cake\Database\ExpressionInterfaceadd()source public
add( string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Добавляет одно или несколько условий к этому объекту выражения. Условия могут быть выражены в одномерном массиве, что приведет к непосредственному добавлению всех условий на этом уровне дерева, или они могут быть произвольно вложены, что приведет к созданию дополнительных объектов выражения, которые будут вложены и сконфигурированы для использования указанной конъюнкции.
Если тип, переданный для любого из полей, выражен как "тип[]" (в скобках), то это приведет к динамической переписыванию заполнителя. Поэтому, если значение является массивом, он создаст столько заполнителей, сколько значений в нем.
Параметры
- строка|массив|
Cake\Database\ExpressionInterface$conditions одно или несколько условий для добавления. При использовании массива и ключа 'ИЛИ' или 'И' будет создан новый объект выражения с этой конъюнкцией и внутренним значением массива, переданным как условия.
- массив
$typesнеобязательно [] ассоциативный массив полей, указывающих на тип значений, которые передаются. Используется для правильной привязки значений к инструкциям.
Возвращает
$this
См. также
\Cake\Database\Query::where() для примеров условийaddCase()source public
addCase( array|Cake\Database\ExpressionInterface $conditions , array|Cake\Database\ExpressionInterface $values = [] , array $types = [] )
Добавляет новое выражение case в объект выражения
Параметры
- массив|
Cake\Database\ExpressionInterface$conditions Условие для проверки. Должно быть экземпляром ExpressionInterface или массивом экземпляров ExpressionInterface.
- массив|
Cake\Database\ExpressionInterface$valuesнеобязательно [] ассоциативный массив значений, которые необходимо связать с условиями, переданными в $conditions. Если значений $values больше, чем условий $conditions, последнее $value используется в качестве значения
ELSE- массив
$typesнеобязательно [] ассоциативный массив типов, которые необходимо связать со значениями, переданными в $values
Возвращает
$this
and_()source public
and_( callable|string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Возвращает новый объект QueryExpression, содержащий все переданные условия, и устанавливает конъюнкцию в "И"
Параметры
- вызов функции|строка|массив|
Cake\Database\ExpressionInterface$conditions - для объединения с помощью "И"
- массив
$typesнеобязательно [] ассоциативный массив полей, указывающих на тип значений, которые передаются. Используется для правильной привязки значений к инструкциям.
Возвращает
Cake\Database\Expression\QueryExpressionbetween()source public
between( string|Cake\Database\ExpressionInterface $field , mixed $from , mixed $to , string|null $type = null )
Добавляет новое условие в объект выражения в виде "поле МЕЖДУ от И до".
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Имя поля, для сравнения значений в пределах диапазона.
- смешанное
$from - Начальное значение диапазона.
- смешанное
$to - Конечное значение в диапазоне сравнения.
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью Type map.
Возвращает
$this
count()source public
count( )
Возвращает количество внутренних условий, которые хранятся в этом выражении. Полезно для определения, является ли этот объект выражения пустым или он сгенерирует непустую строку при компиляции
Возвращает
целое числоРеализация
Countable::count() eq()source public
eq( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие в объект выражения в виде "поле = значение".
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое сравнивается со значением
- смешанное
$value - Значение, которое должно быть привязано к $field для сравнения
- строка|null
$typeнеобязательно null имя типа для $value, как настроено с помощью Type map. Если он заканчивается на "[]" и значение является массивом, то будет создано несколько заполнителей, по одному на каждое значение в массиве.
Возвращает
$this
equalFields()source public
equalFields( string $left , string $right )
Строит условие равенства или присвоения с идентификатором обертывания.
Параметры
- строка
$left - Левое поле условия соединения.
- строка
$right - Правое поле условия соединения.
Возвращает
$this
exists()source public
exists( Cake\Database\ExpressionInterface $query )
Добавляет новое условие в объект выражения в виде "СУЩЕСТВУЕТ (...)".
Параметры
-
Cake\Database\ExpressionInterface$query - внутренний запрос
Возвращает
$this
getConjunction()source public
getConjunction( )
Получает текущую конъюнкцию для условий на данном уровне древа выражения.
Возвращает
строкаgt()source public
gt( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в виде «поле > значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое будет сравниваться со значением
- смешанное
$value - Значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращает
$this
gte()source public
gte( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в виде «поле >= значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое будет сравниваться со значением
- смешанное
$value - Значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращает
$this
hasNestedExpression()source public
hasNestedExpression( )
Возвращает true, если данное выражение содержит другие вложенные объекты ExpressionInterface.
Возвращает
booleanin()source public
in( string|Cake\Database\ExpressionInterface $field , string|array $values , string|null $type = null )
Добавляет новое условие к объекту выражения в виде «поле IN (значение1, значение2)».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое будет сравниваться со значением
- строка|массив
$values - значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращает
$this
isCallable()source public
isCallable( callable $c )
Проверка того, является ли переданный вызов допустимым.
Мы не принимаем обратные вызовы типа ['class', 'method'], так как они часто содержат пользовательский ввод, а массивы строк легко подсунуть.
Параметры
- вызов
$c - Вызов для проверки.
Возвращает
booleanДопустимый вызов.
isNotNull()source public
isNotNull( string|Cake\Database\ExpressionInterface $field )
Добавляет новое условие к объекту выражения в виде «поле IS NOT NULL».
Параметры
- строка|
Cake\Database\ExpressionInterface$field базовое поле, проверяемое на непустоту
Возвращает
$this
isNull()source public
isNull( string|Cake\Database\ExpressionInterface $field )
Добавляет новое условие к объекту выражения в виде «поле IS NULL».
Параметры
- строка|
Cake\Database\ExpressionInterface$field базовое поле, проверяемое на пустоту
Возвращает
$this
iterateParts()source public
iterateParts( callable $callable )
Выполняет функцию вызова для каждой части, формирующей это выражение.
Функция вызова должна возвращать значение, которым будет заменена текущая посещаемая часть. Если функция вызова возвращает null, то часть будет полностью удалена из этого выражения.
Функция обратного вызова получит каждое условие в качестве первого параметра и ключ как второй. Возможно объявить второй параметр как передаваемый по ссылке, это позволит изменить ключ, под которым хранится измененная часть.
Параметры
- вызов
$callable - Вызов, применяемый к каждой части.
Возвращает
$this
like()source public
like( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в виде «поле LIKE значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое будет сравниваться со значением
- смешанное
$value - Значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращает
$this
lt()source public
lt( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в виде «поле < значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое будет сравниваться со значением
- смешанное
$value - Значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращает
$this
lte()source public
lte( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в виде «поле <= значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое будет сравниваться со значением
- смешанное
$value - Значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращает
$this
not()source public
not( string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Добавляет новый набор условий на данном уровне дерева и инвертирует конечный результат, добавив NOT, это будет выглядеть как "NOT ( (условие1) И (условия2) )", конъюнкция зависит от текущей, заданной для этого объекта.
Параметры
- строка|массив|
Cake\Database\ExpressionInterface$conditions - для добавления и инвертирования
- массив
$typesнеобязательно [] ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для корректной привязки значений к инструкциям.
Возвращает
$this
notEq()source public
notEq( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в виде «поле != значение».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое будет сравниваться со значением
- смешанное
$value - Значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null имя типа для $value, как настроено с помощью карты типов. Если оно заканчивается на "[]" и значение является массивом, то будет создано несколько маркеров placeholders, по одному на каждое значение в массиве.
Возвращает
$this
notExists()source public
notExists( Cake\Database\ExpressionInterface $query )
Добавляет новое условие к объекту выражения в виде «НЕСУЩЕСТВУЕТ (...)».
Параметры
-
Cake\Database\ExpressionInterface$query - внутренний запрос
Возвращает
$this
notIn()source public
notIn( string|Cake\Database\ExpressionInterface $field , array $values , string|null $type = null )
Добавляет новое условие к объекту выражения в виде «поле НЕ В (значение1, значение2)».
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Базовое поле, которое будет сравниваться со значением
- массив
$values - значение, которое будет привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращает
$this
notLike()source public
notLike( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в виде "поле НЕ ПОДОБНО значение".
Параметры
- строка|
Cake\Database\ExpressionInterface$field - Поле базы данных, которое должно быть сравнено со значением
- смешанное
$value - Значение, которое должно быть привязано к $field для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращает
$this
or_()source public
or_( callable|string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Возвращает новый объект QueryExpression, содержащий все условия, которые были переданы, и устанавливает конъюнкцию в «ИЛИ»
Параметры
- вызываемая функция|строка|массив|
Cake\Database\ExpressionInterface$conditions - для объединения с ИЛИ
- массив
$typesнеобязательно [] ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращает
Cake\Database\Expression\QueryExpressionsetConjunction()source public
setConjunction( string $conjunction )
Изменяет конъюнкцию для условий на данном уровне дерева выражения.
Параметры
- строка
$conjunction - Значение, используемое для объединения условий
Возвращает
$this
sql()source public
sql( Cake\Database\ValueBinder $generator )
Возвращает строковое представление этого объекта для использования в запросе SQL. Обратите внимание, что значения условий не включены в строку, вместо них используются заполнитель, которые могут быть заменены соответствующими процитированными значениями.
Параметры
- Cake\Database\ValueBinder
$generator - Объект генератора заполнителей
Возвращает
строкаРеализация
Cake\Database\ExpressionInterface::sql() tieWith()source public устарело
tieWith( string|null $conjunction = null )
Изменяет конъюнкцию для условий на данном уровне дерева выражения. Если вызвано без аргументов, оно вернет текущее значение.
Устарело
3.4.0 Используйте setConjunction()/getConjunction() вместо этого.Параметры
- строка|null
$conjunctionнеобязательно null значение, используемое для объединения условий. Если null, то значение не будет установлено, а вернется текущее сохраненное значение
Возвращает
строка|Cake\Database\Expression\QueryExpression$this
traverse()source public
traverse( callable $callable )
Проходит по структуре дерева данного выражения запроса, выполняя функцию обратного вызова для каждого из условий, включённых в этот объект. Полезно для компиляции конечного выражения или интроспекции структуры.
Функция обратного вызова получает в качестве единственного аргумента экземпляр ExpressionInterface
Параметры
- вызываемая функция
$callable - Вызываемая функция, которая применяется ко всем подвыражениям.
Реализация
Cake\Database\ExpressionInterface::traverse() type()source public устарело
type( string|null $conjunction = null )
Обратно совместимая обёртка для tieWith()
Устарело
3.2.0 Используйте setConjunction()/getConjunction() вместо этогоПараметры
- строка|null
$conjunctionнеобязательно null значение, используемое для объединения условий. Если null, то значение не будет установлено, а вернется текущее сохранённое значение
Возвращает
строка|Cake\Database\Expression\QueryExpression$this
Методы, используемые из Cake\Database\TypeMapTrait
defaultTypes()source public устарело
defaultTypes( array $types = null )
Позволяет устанавливать типы по умолчанию при цепочечном запросе
Устарело
3.4.0 Используйте setDefaultTypes()/getDefaultTypes() вместо этого.Параметры
- массив
$typesнеобязательно null - Массив типов для установки.
Возвращает
$this|массив
getDefaultTypes()source public
getDefaultTypes( )
Получает типы по умолчанию текущей карты типов.
Возвращает
массивgetTypeMap()source public
getTypeMap( )
Возвращает существующую карту типов.
Возвращает
Cake\Database\TypeMapsetDefaultTypes()source public
setDefaultTypes( array $types )
Перезаписывает сопоставления типов по умолчанию для полей в реализующем объекте.
Этот метод полезен, если вам нужно установить сопоставления типов, которые используются в нескольких функциях/выражениях в запросе.
Для добавления значения по умолчанию без перезаписи существующих используйте getTypeMap()->addDefaults()
Параметры
- массив
$types - Массив типов для установки.
Возвращает
$this
См. также
\Cake\Database\TypeMap::setDefaults()setTypeMap()source public
setTypeMap( array|Cake\Database\TypeMap $typeMap )
Создаёт новую карту типов, если $typeMap является массивом, в противном случае меняет её на заданную.
Параметры
- массив|
Cake\Database\TypeMap$typeMap - Создаёт карту типов, если массив, в противном случае устанавливает заданную карту типов
Возвращает
$this
typeMap()source public устарело
typeMap( array|Cake\Database\TypeMap|null $typeMap = null )
Создаёт новую карту типов, если $typeMap является массивом, в противном случае возвращает существующую карту типов или меняет её на заданную.
Устарело
3.4.0 Используйте setTypeMap()/getTypeMap() вместо этого.Параметры
- массив|
Cake\Database\TypeMap|null$typeMapнеобязательно null - Создаёт карту типов, если массив, в противном случае устанавливает заданную карту типов
Возвращает
$this|\Cake\Database\TypeMap
Подробное описание свойств
$_conditionssource
protected массив
Список строк или других объектов выражений, которые представляют «ветви» дерева выражения. Например, один ключ массива может выглядеть так: "сумма > :значение"
[]
$_conjunctionsource
protected строка
Строка, используемая для объединения каждого из внутренних выражений, которые этот объект хранит внутри, например, «И», «ИЛИ» и т. д.
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.8/class-Cake.Database.Expression.QueryExpression.html