Spec-Zone.ru › CakePHP 3.8

Класс OrderByExpression

Объект выражения для условий ORDER BY

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

Унаследованные свойства

  • _conditions, _conjunction _typeMap

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

  • __construct() public
    Конструктор
  • _addConditions() protected

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

  • sql() public
    Преобразовать выражение в фрагмент SQL.

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

__construct()source public

__construct( string|array|Cake\Database\ExpressionInterface $conditions = [] , array|Cake\Database\TypeMap $types = [] , string $conjunction = '' )

Конструктор

Параметры

строка|массив|Cake\Database\ExpressionInterface $conditions необязательно []
Столбцы сортировки
массив|Cake\Database\TypeMap $types необязательно []
Типы для каждого столбца.
строка $conjunction необязательно ''
Разделитель, используемый для объединения условий.

Переопределяет

Cake\Database\Expression\QueryExpression::__construct()

_addConditions()source protected

_addConditions( array $orders , array $types )

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

Новые выражения ORDER BY объединяются с существующими.

Параметры

массив $orders
список выражений ORDER BY
массив $types
список типов, связанных с полями, упомянутыми в $conditions

Переопределяет

Cake\Database\Expression\QueryExpression::_addConditions()

sql()source public

sql( Cake\Database\ValueBinder $generator )

Преобразовать выражение в фрагмент SQL.

Параметры

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

Возвращает

строка

Переопределяет

Cake\Database\Expression\QueryExpression::sql()

Методы, унаследованные от Cake\Database\Expression\QueryExpression

__call()source public

__call( string $method , array $args )

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

Параметры

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

Возвращает

Cake\Database\Expression\QueryExpression

Исключения

BadMethodCallException

__clone()source public

__clone( )

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

_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\ExpressionInterface

add()source public

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

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

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

Параметры

строка|массив|Cake\Database\ExpressionInterface $conditions

одно или несколько условий для добавления. При использовании массива и ключа 'OR' или 'AND' будет создан новый объект выражения с указанным союзом и значением внутреннего массива в качестве условий.

массив $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
для объединения с AND
массив $types необязательно []

ассоциативный массив полей, указывающий на тип передаваемых значений. Используется для правильной привязки значений к операторам.

Возвращает

Cake\Database\Expression\QueryExpression

between()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
END_OF_DOCUMENT_MARKER ```

count()source public

count( )

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

Возвращает

integer

Реализация

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, как настроено с помощью Type map.

Возвращает


$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, как настроено с помощью Type map.

Возвращает


$this

hasNestedExpression()source public

hasNestedExpression( )

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

Возвращает

boolean

in()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, как настроено с помощью Type map.

Возвращает


$this

isCallable()source public

isCallable( callable $c )

Проверка, является ли вызываемый объект приемлемым.

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

Параметры

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

Возвращает

boolean
Действительный вызываемый объект.

isNotNull()source public

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

Добавляет новое условие к объекту выражения в виде "поле НЕ NULL".

Параметры

строка|Cake\Database\ExpressionInterface $field

базовое поле, которое должно быть проверено на непустоту

Возвращает


$this

isNull()source public

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

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

Параметры

строка|Cake\Database\ExpressionInterface $field

базовое поле, которое должно быть проверено на null

Возвращает


$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, как настроено с помощью Type map.

Возвращает


$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, как настроено с помощью Type map.

Возвращает


$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, как настроено с помощью Type map.

Возвращает


$this
END_OF_DOCUMENT_MARKER

not()source public

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

Добавляет новый набор условий на данном уровне дерева и отрицает конечный результат, добавив ПРЕФИКС NOT, что будет выглядеть как «NOT ( (condition1) AND (conditions2) )». Соединение зависит от того, которое в настоящее время настроено для этого объекта.

Параметры

строка|массив|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, как настроено с помощью карты типов. Если оно заканчивается на «[]», а значение является массивом, будут созданы несколько заменителей, по одному на каждое значение в массиве.

Возвращает


$this

notExists()source public

notExists( Cake\Database\ExpressionInterface $query )

Добавляет новое условие к объекту выражения в форме «NOT EXISTS (...)».

Параметры

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\QueryExpression

setConjunction()source public

setConjunction( string $conjunction )

Изменяет соединение для условий на данном уровне дерева выражения.

Параметры

строка $conjunction
Значение, используемое для объединения условий

Возвращает


$this

tieWith()source public deprecated

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 deprecated

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 deprecated

defaultTypes( array $types = null )

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

Устарело

3.4.0 Используйте setDefaultTypes()/getDefaultTypes() вместо этого.

Параметры

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

Возвращает


$this|массив

getDefaultTypes()source public

getDefaultTypes( )

Возвращает типы по умолчанию текущей карты типов.

Возвращает

массив

getTypeMap()source public

getTypeMap( )

Возвращает существующую карту типов.

Возвращает

Cake\Database\TypeMap

setDefaultTypes()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
END_OF_DOCUMENT_MARKER

typeMap()source public deprecated

typeMap( array|Cake\Database\TypeMap|null $typeMap = null )

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

Устарело

3.4.0 Используйте setTypeMap()/getTypeMap() вместо этого.

Параметры

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

Возвращает


$this|\Cake\Database\TypeMap

© 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.OrderByExpression.html

Spec-Zone.ru

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