Класс 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 '' )
Конструктор
Параметры
- строка|массив|
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 одно или несколько условий для добавления. При использовании массива и если ключ равен 'ИЛИ' или 'И', будет создан новый объект выражения с этим союзом и значением внутреннего массива, переданного в качестве условий.
- массив
$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_( 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, как настроено с помощью карты типов. Если оно суффиксное «[]» и значение — массив, то будет создано несколько заглушек, по одной для каждого значения в массиве.
Возвращает
$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.
Возвращает
булево значениеin()source public
in( string|Cake\Database\ExpressionInterface $field , string|array $values , string|null $type null )
Добавляет новое условие к объекту выражения в виде "поле В (значение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 поле базы данных, которое проверяется на не-null
Возвращает
$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, как настроено с помощью карты типов.
Возвращает
$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 - Значение, которое будет привязано к $поле для сравнения
- строка|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 - Значение, которое будет привязано к $поле для сравнения
- строка|null
$typeнеобязательно null имя типа для $value, как настроено с помощью карты типов. Если оно заканчивается на "[]" и значение является массивом, то будут созданы несколько заглушек, по одной для каждого значения в массиве.
Возвращает
$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 - значение, которое будет привязано к $поле для сравнения
- строка|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 - Значение, которое будет привязано к $поле для сравнения
- строка|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью карты типов.
Возвращает
$this
or_()source public
or_( 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
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 Используйте tieWith() вместо этогоПараметры
- строка|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 )
Позволяет устанавливать типы по умолчанию при цепочечном выполнении запроса.
Параметры
- массив
$types - массив типов для установки.
Возвращает
$this
setTypeMap()source public
setTypeMap( array|Cake\Database\TypeMap $typeMap )
Создаёт новый TypeMap, если $typeMap является массивом, иначе меняет его на заданный.
Параметры
- массив|
Cake\Database\TypeMap$typeMap - Создаёт TypeMap, если массив, иначе устанавливает заданный TypeMap
Возвращаемое значение
$this
typeMap()source public
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–2018 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.5/class-Cake.Database.Expression.OrderByExpression.html