Spec-Zone.ru › CakePHP 3.1

Класс QueryExpression

Представляет выражение SQL запроса. Внутренне он хранит дерево выражений, которое можно скомпилировать, преобразовав этот объект в строку, и будет содержать правильно скобочное и вложенное выражение.

Cake\Database\Expression\QueryExpression реализует Cake\Database\ExpressionInterface, Countable использует Cake\Database\TypeMapTrait
Пространство имён: Cake\Database\Expression
Расположено в Database/Expression/QueryExpression.php

Подробное описание метода

__callsource public

__call( string $method , array $args )

Помогает прозрачно вызывать методы and() и or().

Параметры

string $method
Имя метода.
array $args
Аргументы для передачи методу.

Возвращает

Cake\Database\Expression\QueryExpression
\Cake\Database\Expression\QueryExpression

Исключения

BadMethodCallException
\BadMethodCallException

__clonesource public

__clone( )

Клонирует этот объект и его поддерево выражений.

__constructsource public

__construct( string|array|Cake\Database\Expression\QueryExpression $conditions [] , array|Cake\Database\TypeMap $types [] , string $conjunction 'AND' )

Конструктор. Новый объект выражения может быть создан без каких-либо параметров и динамически построен. В противном случае можно передать массив условий, содержащий либо структуру массива в виде дерева для анализа, либо другие объекты выражений. При желании можно установить ключевое слово сопряжения, используемое для объединения каждой части дерева выражений на этом уровне.

Параметры

string|array|Cake\Database\Expression\QueryExpression $conditions необязательно []
Структура массива в виде дерева, содержащая все условия, которые должны быть добавлены или вложены в этот объект выражения.
array|Cake\Database\TypeMap $types необязательно []
Ассоциативный массив типов, которые будут ассоциированы со значениями, переданными в $conditions.
string $conjunction необязательно 'AND'
Ключевое слово, которое будет соединять все строковые условия на этом уровне дерева выражений. Например, "AND", "OR", "XOR"...

См. также

QueryExpression::add() для получения дополнительной информации о $conditions и $types

_addConditionssource protected

_addConditions( array $conditions , array $types )

Вспомогательная функция, используемая для разложения вложенного массива условий и построения структуры дерева внутри этого объекта для представления полного выражения SQL. Строковые условия хранятся непосредственно в условиях, а все другие представления оборачиваются соответствующим экземпляром или этим классом.

Параметры

array $conditions
Список условий, которые должны храниться в этом объекте
array $types
Список типов, связанных с полями, указанными в $conditions

_parseConditionsource protected

_parseCondition( string $field , mixed $value )

Парсит строковые условия, пытаясь извлечь оператор, если он есть, и, наконец, возвращает либо соответствующий объект QueryExpression, либо просто строковое представление условия. Эта функция отвечает за создание заготовок и замену значений ими, сохраняя значение в другом месте для последующей привязки.

Параметры

string $field
Значение, из которого будет извлечено фактическое поле и оператор.
mixed $value
Значение, которое должно быть привязано к заполнитель для поля

Возвращает

string|Cake\Database\ExpressionInterface
string|\Cake\Database\ExpressionInterface

addsource public

add( string|array|Cake\Database\ExpressionInterface $conditions , array $types [] )

Добавляет одно или несколько условий в этот объект выражения. Условия могут быть выражены в одномерном массиве, что приведет к непосредственному добавлению всех условий на этом уровне дерева, или они могут быть вложены произвольным образом, создавая дополнительные объекты выражений, которые будут вложены внутри и сконфигурированы для использования указанного сопряжения.

Если тип, переданный для любого из полей, выражен как "type[]" (в скобках), это приведет к динамической переписыванию заготовки. Таким образом, если значение является массивом, он создаст столько заготовок, сколько значений в нём.

Параметры

string|array|Cake\Database\ExpressionInterface $conditions
Одно или несколько условий для добавления. При использовании массива и ключа «OR» или «AND» будет создан новый объект выражения с этим сопряжением и переданным в качестве условий значением внутреннего массива.
array $types необязательно []
Ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к утверждениям.

Возвращает

mixed
$this

См. также

\Cake\Database\Query::where() для примеров условий

addCasesource public

addCase( array|Cake\Database\ExpressionInterface $conditions , array|Cake\Database\ExpressionInterface $values [] , array $types [] )

Добавляет новое выражение case в объект выражения

Параметры

array|Cake\Database\ExpressionInterface $conditions
Условия для проверки. Должен быть экземпляром ExpressionInterface или массивом экземпляров ExpressionInterface.
array|Cake\Database\ExpressionInterface $values необязательно []
Ассоциативный массив значений, которые будут связаны с условиями, переданными в $conditions. Если значений $values больше, чем условий $conditions, последнее $value используется как значение ELSE
array $types необязательно []
Ассоциативный массив типов, которые должны быть связаны со значениями, переданными в $values

Возвращает

mixed
$this

and_source public

and_( string|array|Cake\Database\Expression\QueryExpression $conditions , array $types [] )

Возвращает новый объект QueryExpression, содержащий все переданные условия, и настраивает сопряжение на «AND».

Параметры

string|array|Cake\Database\Expression\QueryExpression $conditions
для объединения с AND
array $types необязательно []
Ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к утверждениям.

Возвращает

Cake\Database\Expression\QueryExpression
\Cake\Database\Expression\QueryExpression

betweensource public

between( mixed $field , mixed $from , mixed $to , string $type null )

Добавляет новое условие в объект выражения в виде «поле BETWEEN от И до».

Параметры

mixed $field
Имя поля для сравнения значений в заданном диапазоне.
mixed $from
Начальное значение диапазона.
mixed $to
Конечное значение в диапазоне сравнения.
string $type необязательно null
Имя типа для $value, настроенное с помощью карты типов.

Возвращает

mixed
$this

countsource public

count( )

Возвращает количество внутренних условий, хранящихся в этом выражении. Полезно для определения, является ли этот объект выражения пустым или он сгенерирует непустую строку при компиляции.

Возвращает

integer
int

Реализация

Countable::count()

eqsource public

eq( string $field , mixed $value , string $type null )

Добавляет новое условие в объект выражения в форме «поле = значение».

Параметры

string $field
Базовое поле, которое сравнивается со значением.
mixed $value
Значение, которое должно быть привязано к $field для сравнения
string $type необязательно null
Имя типа для $value, настроенное с помощью карты типов. Если он завершается «[]» и значение является массивом, то будут созданы несколько заготовок, по одной на каждое значение в массиве.

Возвращает

mixed
$this
END_OF_DOCUMENT_MARKER ```

gtsource public

gt( string $field , mixed $value , string $type null )

Добавляет новое условие к объекту выражения в форме "поле > значение".

Параметры

строка $field
Базовое поле, которое нужно сравнить со значением
смешанное $value
Значение, которое нужно связать с $field для сравнения
строка $type необязательно null
имя типа для $value, как настроено с помощью Type map.

Возвращает

mixed
$this

gtesource public

gte( string $field , mixed $value , string $type null )

Добавляет новое условие к объекту выражения в форме "поле >= значение".

Параметры

строка $field
Базовое поле, которое нужно сравнить со значением
смешанное $value
Значение, которое нужно связать с $field для сравнения
строка $type необязательно null
имя типа для $value, как настроено с помощью Type map.

Возвращает

mixed
$this

hasNestedExpressionsource public

hasNestedExpression( )

Возвращает true, если это выражение содержит другие вложенные объекты ExpressionInterface.

Возвращает

boolean
bool

insource public

in( string $field , string|array $values , string $type null )

Добавляет новое условие к объекту выражения в форме "поле IN (значение1, значение2)".

Параметры

строка $field
Базовое поле, которое нужно сравнить со значением
строка|массив $values
значение, которое нужно связать с $field для сравнения
строка $type необязательно null
имя типа для $value, как настроено с помощью Type map.

Возвращает

mixed
$this

isCallablesource public

isCallable( callable $c )

Проверяет, является ли вызов допустимым.

Мы не принимаем вызовы типа ['класс', 'метод'], так как они часто содержат пользовательский ввод, а массивы строк легко подменить.

Параметры

вызов $c
Вызов для проверки.

Возвращает

boolean
Допустимый вызов.

isNotNullsource public

isNotNull( string|Cake\Database\ExpressionInterface $field )

Добавляет новое условие к объекту выражения в форме "поле IS NOT NULL".

Параметры

строка|Cake\Database\ExpressionInterface $field
базовое поле, которое нужно проверить на не-null

Возвращает

mixed
$this

isNullsource public

isNull( string|Cake\Database\ExpressionInterface $field )

Добавляет новое условие к объекту выражения в форме "поле IS NULL".

Параметры

строка|Cake\Database\ExpressionInterface $field
базовое поле, которое нужно проверить на null

Возвращает

mixed
$this

iteratePartssource public

iterateParts( callable $callable )

Выполняет вызываемую функцию для каждой части, составляющей это выражение.

Вызываемая функция должна возвращать значение, с которым будет заменена текущая посещаемая часть. Если вызываемая функция возвращает null, то часть полностью удаляется из этого выражения.

Функция обратного вызова получит каждое из условий в качестве первого параметра и ключ во втором. Возможно объявить второй параметр как передаваемый по ссылке, это позволит вам изменить ключ, под которым хранится изменённая часть.

Параметры

вызов $callable
Вызов, применяемый к каждой части.

Возвращает

mixed
$this

likesource public

like( string $field , mixed $value , string $type null )

Добавляет новое условие к объекту выражения в форме "поле LIKE значение".

Параметры

строка $field
Базовое поле, которое нужно сравнить со значением
смешанное $value
Значение, которое нужно связать с $field для сравнения
строка $type необязательно null
имя типа для $value, как настроено с помощью Type map.

Возвращает

mixed
$this

ltsource public

lt( string $field , mixed $value , string $type null )

Добавляет новое условие к объекту выражения в форме "поле < значение".

Параметры

строка $field
Базовое поле, которое нужно сравнить со значением
смешанное $value
Значение, которое нужно связать с $field для сравнения
строка $type необязательно null
имя типа для $value, как настроено с помощью Type map.

Возвращает

mixed
$this

ltesource public

lte( string $field , mixed $value , string $type null )

Добавляет новое условие к объекту выражения в форме "поле <= значение".

Параметры

строка $field
Базовое поле, которое нужно сравнить со значением
смешанное $value
Значение, которое нужно связать с $field для сравнения
строка $type необязательно null
имя типа для $value, как настроено с помощью Type map.

Возвращает

mixed
$this

notsource public

not( string|array|Cake\Database\Expression\QueryExpression $conditions , array $types [] )

Добавляет новый набор условий на этот уровень дерева и инвертирует конечный результат, добавив NOT. Выглядеть это будет так: "NOT ( (условие1) И (условия2) )" Конъюнкция зависит от текущей, настроенной для этого объекта.

Параметры

строка|массив|Cake\Database\Expression\QueryExpression $conditions
что добавить и инвертировать
массив $types необязательно []
ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к заявлениям.

Возвращает

mixed
$this

notEqsource public

notEq( string $field , mixed $value , string $type null )

Добавляет новое условие к объекту выражения в форме "поле != значение".

Параметры

строка $field
Базовое поле, которое нужно сравнить со значением
смешанное $value
Значение, которое нужно связать с $field для сравнения
строка $type необязательно null
имя типа для $value, как настроено с помощью Type map. Если оно оканчивается на "[]" и значение является массивом, то будет создано несколько заглушек, по одной на каждое значение в массиве.

Возвращает

mixed
$this

notInsource public

notIn( string $field , array $values , string $type null )

Добавляет новое условие к объекту выражения в форме "поле NOT IN (значение1, значение2)".

Параметры

строка $field
Базовое поле, которое нужно сравнить со значением
массив $values
значение, которое нужно связать с $field для сравнения
строка $type необязательно null
имя типа для $value, как настроено с помощью Type map.

Возвращает

mixed
$this

notLikesource public

notLike( string $field , mixed $value , string $type null )

Добавляет новое условие к объекту выражения в форме «поле НЕ РАВНО значению».

Параметры

строка $field
Поле базы данных, которое сравнивается со значением
смешанное $value
Значение, которое будет привязано к $field для сравнения
строка $type необязательно null
имя типа для $value, как настроено с помощью TypeMap.

Возвращает

mixed
$this

or_source public

or_( string|array|Cake\Database\Expression\QueryExpression $conditions , array $types [] )

Возвращает новый объект QueryExpression, содержащий все переданные условия и настроенный на связку «ИЛИ».

Параметры

строка|массив|Cake\Database\Expression\QueryExpression $conditions
для объединения с ИЛИ
массив $types необязательно []
ассоциативный массив полей, указывающий тип значений, которые передаются. Используется для правильной привязки значений к операторам.

Возвращает

Cake\Database\Expression\QueryExpression
\Cake\Database\Expression\QueryExpression

sqlsource public

sql( Cake\Database\ValueBinder $generator )

Возвращает строковое представление этого объекта, которое можно использовать в запросе SQL. Обратите внимание, что значения условий не включены в строку, на их месте стоят заглушки, которые могут быть заменены соответствующими процитированными значениями.

Параметры

Cake\Database\ValueBinder $generator
Объект генератора заглушек

Возвращает

string
строка

Реализация

Cake\Database\ExpressionInterface::sql()

traversesource public

traverse( callable $callable )

Обходит древовидную структуру этого выражения запроса, выполняя функцию обратного вызова для каждого из условий, включенных в этот объект. Полезно для компиляции конечного выражения или для интроспекции структуры.

Функция обратного вызова получает в качестве единственного аргумента экземпляр QueryExpression

Параметры

вызываемый объект $callable
Вызываемый объект для применения ко всем подвыражениям.

Реализация

Cake\Database\ExpressionInterface::traverse()

typesource public

type( string $conjunction null )

Изменяет связку для условий на этом уровне дерева выражений. Если вызвана без аргументов, вернёт текущее значение.

Параметры

строка $conjunction необязательно null
значение, используемое для объединения условий. Если null, то не устанавливает значение, а возвращает сохранённое

Возвращает

string|$this
$this

Методы, используемые из Cake\Database\TypeMapTrait

defaultTypessource public

defaultTypes( array $types null )

Позволяет устанавливать значения по умолчанию при цепочечном соединении запросов

Параметры

массив $types необязательно null
Массив типов для установки.

Возвращает

mixed
$this|массив

typeMapsource public

typeMap( array|TypeMap $typeMap null )

Создает новую TypeMap, если $typeMap является массивом, иначе возвращает существующую карту типов или меняет её на заданную.

Параметры

массив|TypeMap $typeMap необязательно null
Создает TypeMap, если массив, иначе устанавливает заданную TypeMap

Возвращает

mixed
$this|TypeMap

Краткое описание свойств

$_conditionssource

protected массив

Список строк или других объектов выражений, представляющих «ветви» дерева выражений. Например, один ключ массива может выглядеть как «сумма > :значение»

[]

$_conjunctionsource

protected строка

Строка, используемая для объединения каждого из внутренних выражений, которые объект хранит внутри, например «И», «ИЛИ» и т.д.

Свойства, используемые из Cake\Database\TypeMapTrait

$_typeMapsource

protected Cake\Database\TypeMap

© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.Database.Expression.QueryExpression.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API