Класс OrderByExpression
Объект выражения для условий ORDER BY
- Cake\Database\Expression\QueryExpression реализует Cake\Database\ExpressionInterface, Countable использует Cake\Database\TypeMapTrait
-
Cake\Database\Expression\OrderByExpression
Унаследованные свойства
Краткое описание методов
- __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_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 = [] )
Добавляет одно или несколько условий к этому объекту выражения. Условия могут быть выражены в одномерном массиве, что приведет к непосредственному добавлению всех условий на данном уровне дерева, или они могут быть вложены произвольным образом, что приведет к созданию дополнительных объектов выражений, которые будут вложены внутри и настроены для использования указанного союза.
Если для какого-либо поля указан тип "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\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( )
Возвращает количество внутренних условий, хранящихся в этом выражении. Полезно определить, является ли этот объект выражения пустым или он сгенерирует непустую строку при компиляции
Возвращает
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.
Возвращает
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, как настроено с помощью 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
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\QueryExpressionsetConjunction()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\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 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