Класс OrderByExpression
Объект выражения для положений ORDER BY
- Cake\Database\Expression\QueryExpression implements 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 = '' )
Конструктор
Параметры
- string|array|
Cake\Database\ExpressionInterface$conditionsнеобязательно [] - Столбцы сортировки
- array|
Cake\Database\TypeMap$typesнеобязательно [] - Типы для каждого столбца.
- string
$conjunctionнеобязательно '' - Разделитель, используемый для объединения условий.
Переопределяет
Cake\Database\Expression\QueryExpression::__construct() _addConditions()source protected
_addConditions( array $orders , array $types )
Вспомогательная функция, используемая для разложения вложенного массива условий и построения структуры дерева внутри этого объекта для представления полного SQL-выражения.
Новые выражения order by объединяются с существующими.
Параметры
- array
$orders - Список выражений order by
- array
$types - Список типов, связанных с полями, указанными в $conditions
Переопределяет
Cake\Database\Expression\QueryExpression::_addConditions() sql()source public
sql( Cake\Database\ValueBinder $generator )
Преобразование выражения в фрагмент SQL.
Параметры
- Cake\Database\ValueBinder
$generator - Объект генератора заменителей
Возвращает
stringПереопределяет
Cake\Database\Expression\QueryExpression::sql() Методы, унаследованные от Cake\Database\Expression\QueryExpression
__call()source public
__call( string $method , array $args )
Помогает вызывать методы and() и or() прозрачно.
Параметры
- string
$method - Имя метода.
- array
$args - Аргументы для передачи методу.
Возвращает
Cake\Database\Expression\QueryExpressionВыбрасывает
BadMethodCallException_calculateType()source protected
_calculateType( string|Cake\Database\Expression\IdentifierExpression $field )
Возвращает имя типа для переданного поля, если оно было сохранено в typeMap.
Параметры
- string|
Cake\Database\Expression\IdentifierExpression$field - Имя поля, для которого нужно получить тип.
Возвращает
string|nullВычисленный тип или null, если тип неизвестен.
_parseCondition()source protected
_parseCondition( string $field , mixed $value )
Парсит строковые условия, пытаясь извлечь оператор внутри, если он есть, и, наконец, возвращает либо соответствующий объект QueryExpression, либо просто строковое представление условия. Эта функция отвечает за генерацию заменителей и замену значений ими, сохраняя значение в другом месте для последующего связывания.
Параметры
- string
$field Значение, из которого будет извлечено фактическое поле и оператор.
- mixed
$value - Значение, которое должно быть привязано к заполнению для поля
Возвращает
string|Cake\Database\ExpressionInterfaceadd()source public
add( string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Добавляет одно или несколько условий к этому объекту выражения. Условия могут быть выражены в одномерном массиве, что приведет к добавлению всех условий непосредственно на этом уровне дерева, или они могут быть произвольно вложены, заставляя создавать больше объектов выражений, которые будут вложены внутри и настроены на использование указанного союза.
Если тип, переданный для любого из полей, выражен как "type[]" (обратите внимание на фигурные скобки), это приведет к динамической переписыванию заполнителя, так что если значение является массивом, он создаст столько же заполнителей, сколько значений в нем.
Параметры
- string|array|
Cake\Database\ExpressionInterface$conditions одно или несколько условий для добавления. При использовании массива и ключевое слово 'OR' или 'AND' будет создан новый объект выражения с этим союзом и значением внутреннего массива, переданным в качестве условий.
- array
$typesнеобязательно [] ассоциативный массив полей, указывающих на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращает
$this
См. также
\Cake\Database\Query::where() для примеров условийaddCase()source 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
Возвращает
$this
and_()source public
and_( callable|string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает сопряжение в "И"
Параметры
- callable|string|array|
Cake\Database\ExpressionInterface$conditions - для объединения с AND
- array
$typesнеобязательно [] ассоциативный массив полей, указывающих на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращает
Cake\Database\Expression\QueryExpressionbetween()source public
between( string|Cake\Database\ExpressionInterface $field , mixed $from , mixed $to , string|null $type = null )
Добавляет новое условие в объект выражения в виде "поле МЕЖДУ от И до".
Параметры
- string|
Cake\Database\ExpressionInterface$field - Имя поля для сравнения значений в диапазоне.
- mixed
$from - Начальное значение диапазона.
- mixed
$to - Конечное значение в диапазоне сравнения.
- string|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, как настроено с помощью карты типов. Если оно суффикс "[]" и значение является массивом, то будет создано несколько заменителей, по одному на каждое значение в массиве.
Возвращает
$this
equalFields()source public
equalFields( string $left , string $right )
Создает условие равенства или присваивания с оболочкой идентификатора.
Параметры
- строка
$left - Имя поля условия левого соединения.
- строка
$right - Имя поля условия правого соединения.
Возвращает
$this
exists()source public
exists( Cake\Database\ExpressionInterface $query )
Добавляет новое условие к объекту выражения в форме "EXISTS (...)".
Параметры
-
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.
Возвращает
логическое значение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, как настроено с помощью карты типов.
Возвращает
$this
isCallable()source public
isCallable( callable $c )
Проверяет, является ли вызываемый объект приемлемым.
Мы не принимаем вызовы типа ['класс', 'метод'], так как они часто содержат пользовательский ввод, а массивы строк легко подсунуть.
Параметры
- вызываемый объект
$c - Вызываемый объект для проверки.
Возвращает
логическое значениеДопустимый вызываемый объект.
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 поле базы данных, проверяемое на пустоту
Возвращает
$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, как настроено с помощью Type map.
Возвращаемое значение
$this
not()source public
not( string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Добавляет новый набор условий на этом уровне дерева и отрицает окончательный результат, добавив NOT, это будет выглядеть как "NOT ( (условие1) AND (условия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, как настроено с помощью Type map. Если оно заканчивается на "[]" и значение является массивом, то будет создано несколько заглушек, по одной для каждого значения в массиве.
Возвращаемое значение
$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, как настроено с помощью Type map.
Возвращаемое значение
$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, как настроено с помощью Type map.
Возвращаемое значение
$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 )
Изменяет конъюнкцию для условий на этом уровне дерева выражения. Если вызвано без аргументов, оно вернет текущее значение.
Deprecated
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()
Deprecated
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 )
Позволяет устанавливать типы по умолчанию при объединении запросов
Deprecated
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, если $typeMap является массивом, в противном случае меняет его на предоставленный.
Параметры
- массив|
Cake\Database\TypeMap$typeMap - Создаёт 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.7/class-Cake.Database.Expression.OrderByExpression.html