Класс OrderByExpression
Объект выражения для операторов ORDER BY
- Cake\Database\Expression\QueryExpression implements Cake\Database\ExpressionInterface, Countable uses 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$conditionsoptional [] - Столбцы сортировки
- array|
Cake\Database\TypeMap$typesoptional [] - Типы для каждого столбца.
- string
$conjunctionoptional '' - Разделитель, используемый для объединения условий.
Переопределяет
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 одно или несколько условий для добавления. При использовании массива и ключа "ИЛИ" или "И" будет создан новый объект выражения с этим союзом и значением внутреннего массива, переданным в качестве условий.
- array
$typesoptional [] ассоциативный массив полей, указывающий на тип передаваемых значений. Используется для правильной привязки значений к операторам.
Возвращает
$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$valuesoptional [] ассоциативный массив значений, которые будут связаны с переданными условиями. Если $values больше, чем $conditions, последнее $value используется в качестве значения
ELSE- array
$typesoptional [] ассоциативный массив типов, которые будут связаны со значениями, переданными в $values
Возвращает
$this
and_()source public
and_( string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Возвращает новый объект QueryExpression, содержащий все переданные условия, и настраивает союз на "И"
Параметры
- string|array|
Cake\Database\ExpressionInterface$conditions - для объединения с И
- array
$typesoptional [] ассоциативный массив полей, указывающий на тип передаваемых значений. Используется для правильной привязки значений к операторам.
Возвращает
Cake\Database\Expression\QueryExpressionbetween()source public
between( string|Cake\Database\ExpressionInterface $field , mixed $from , mixed $to , string|null $type = null )
Добавляет новое условие в объект выражения в форме "поле BETWEEN от И до".
Параметры
- string|
Cake\Database\ExpressionInterface$field - Имя поля для сравнения значений в диапазоне.
- mixed
$from - Начальное значение диапазона.
- mixed
$to - Конечное значение в диапазоне сравнения.
- string|null
$typeoptional 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.
Возвращает
booleanin()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 - Вызываемый объект для проверки.
Возвращает
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 базовое поле, которое проверяется на пустоту
Возвращает
$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 )
Добавляет новое условие к объекту выражения в виде "поле <= значение".
Параметры
- string|
Cake\Database\ExpressionInterface$field - Базовое поле для сравнения со значением
- mixed
$value - Значение, которое будет привязано к $field для сравнения
- string|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью Type map.
Возвращает
$this
not()source public
not( string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Добавляет новый набор условий на данном уровне дерева и инвертирует конечный результат, добавив NOT, это будет выглядеть как "NOT ( (условие1) И (условия2) )", сочленение зависит от текущего, настроенного для данного объекта.
Параметры
- string|array|
Cake\Database\ExpressionInterface$conditions - для добавления и инвертирования
- array
$typesнеобязательно [] ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращает
$this
notEq()source public
notEq( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в виде "поле != значение".
Параметры
- string|
Cake\Database\ExpressionInterface$field - Базовое поле для сравнения со значением
- mixed
$value - Значение, которое будет привязано к $field для сравнения
- string|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)".
Параметры
- string|
Cake\Database\ExpressionInterface$field - Базовое поле для сравнения со значением
- array
$values - значение, которое будет привязано к $field для сравнения
- string|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью Type map.
Возвращает
$this
notLike()source public
notLike( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )
Добавляет новое условие к объекту выражения в виде "поле НЕ ПОДОБНО значение".
Параметры
- string|
Cake\Database\ExpressionInterface$field - Базовое поле для сравнения со значением
- mixed
$value - Значение, которое будет привязано к $field для сравнения
- string|null
$typeнеобязательно null - имя типа для $value, как настроено с помощью Type map.
Возвращает
$this
or_()source public
or_( string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )
Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает соединение в "ИЛИ".
Параметры
- string|array|
Cake\Database\ExpressionInterface$conditions - для объединения с ИЛИ
- array
$typesнеобязательно [] ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращает
Cake\Database\Expression\QueryExpressionsetConjunction()source public
setConjunction( string $conjunction )
Изменяет сочленение для условий на данном уровне дерева выражения.
Параметры
- string
$conjunction - Значение, используемое для объединения условий
Возвращает
$this
tieWith()source public deprecated
tieWith( string|null $conjunction = null )
Изменяет сочленение для условий на данном уровне дерева выражения. Если вызывается без аргументов, возвращает текущее значение.
Устаревшее
3.4.0 Используйте setConjunction()/getConjunction() вместо этого.Параметры
- string|null
$conjunctionнеобязательно null значение, используемое для объединения условий. Если null, не устанавливает значение, а возвращает текущее сохранённое
Возвращает
string|Cake\Database\Expression\QueryExpression$this
traverse()source public
traverse( callable $callable )
Обходит структуру дерева этого выражения запроса, выполняя функцию обратного вызова для каждого из включенных условий в этом объекте. Полезно для компиляции конечного выражения или для интроспекции структуры.
Функция обратного вызова получает в качестве единственного аргумента экземпляр ExpressionInterface
Параметры
- callable
$callable - Функция обратного вызова для применения ко всем подвыражениям.
Реализация
Cake\Database\ExpressionInterface::traverse() type()source public deprecated
type( string|null $conjunction = null )
Обратный совместимый обёртка для tieWith()
Устаревшее
3.2.0 Используйте setConjunction()/getConjunction() вместо этогоПараметры
- string|null
$conjunctionнеобязательно null значение, используемое для объединения условий. Если null, не устанавливает значение, а возвращает текущее сохранённое
Возвращает
string|Cake\Database\Expression\QueryExpression$this
Методы, используемые из Cake\Database\TypeMapTrait
defaultTypes()source public deprecated
defaultTypes( array $types = null )
Позволяет устанавливать типы по умолчанию при объединении запросов
Устаревшее
3.4.0 Используйте setDefaultTypes()/getDefaultTypes() вместо этого.Параметры
- array
$typesнеобязательно null - Массив типов для установки.
Возвращает
$this|array
getDefaultTypes()source public
getDefaultTypes( )
Получает типы по умолчанию текущей карты типов.
Возвращает
arraygetTypeMap()source public
getTypeMap( )
Возвращает существующую карту типов.
Возвращает
Cake\Database\TypeMapsetDefaultTypes()source public
setDefaultTypes( array $types )
Позволяет устанавливать типы по умолчанию при объединении запросов.
Параметры
- array
$types - Массив типов для установки.
Возвращает
$this
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.6/class-Cake.Database.Expression.OrderByExpression.html