Spec-Zone.ru › CakePHP 4.2

Класс CaseExpression

Этот класс представляет оператор SQL Case.

Пространство имён: Cake\Database\Expression

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

  • $_conditions protected
    array

    Список строк или других объектов выражения, представляющих условия оператора case. Например, один ключ массива может выглядеть как "sum > :value".

  • $_elseValue protected
    stringCake\Database\ExpressionInterface|array|null

    Значение по умолчанию для оператора case. Если null, то значение по умолчанию не будет включено.

  • $_values protected
    array

    Значения, связанные с условиями в массиве $_conditions. Каждое значение представляет собой значение "истина" для условия с соответствующим ключом.

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

  • __construct() public

    Конструирует выражение case

  • _addExpressions() protected

    Перебирает переданные условия и гарантирует, что для каждого из них есть соответствующее истинное значение. Если нет соответствующего истинного значения, оно устанавливается по умолчанию в '1'.

  • _castToExpression() protected

    Условно преобразует переданное значение в объект ExpressionInterface, если класс типа реализует ExpressionTypeInterface. В противном случае возвращает значение без изменений.

  • _compile() protected

    Компилирует соответствующие части в sql

  • _requiresToExpressionCasting() protected

    Возвращает массив с типами, которые требуют приведения значений к выражениям, из списка имен типов, переданных в качестве параметра.

  • add() public

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

  • elseValue() public

    Устанавливает значение по умолчанию

  • sql() public

    Преобразует узел в фрагмент строки SQL.

  • traverse() public

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

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

__construct() public

__construct(arrayCake\Database\ExpressionInterface $conditions = [], arrayCake\Database\ExpressionInterface $values = [], array $types = [])

Конструирует выражение case

Parameters

arrayCake\Database\ExpressionInterface $conditions optional

Условия для проверки. Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.

arrayCake\Database\ExpressionInterface $values optional

ассоциативный массив значений, которые будут связаны с условиями, переданными в $conditions. Если $values больше, чем $conditions, последнее $value используется как ELSE значение.

array $types optional

ассоциативный массив типов, которые будут связаны со значениями, переданными в $values

_addExpressions() protected

_addExpressions(array $conditions, array $values, array $types): void

Перебирает переданные условия и гарантирует, что для каждого из них есть соответствующее истинное значение. Если нет соответствующего истинного значения, оно устанавливается по умолчанию в '1'.

Parameters

array $conditions

Массив экземпляров ExpressionInterface.

array $values

ассоциативный массив значений каждого условия

array $types

ассоциативный массив типов, которые будут связаны со значениями

Returns

void

_castToExpression() protected

_castToExpression(mixed $value, string|null $type = null): mixed

Условно преобразует переданное значение в объект ExpressionInterface, если класс типа реализует ExpressionTypeInterface. В противном случае возвращает значение без изменений.

Parameters

mixed $value

Значение для преобразования в ExpressionInterface

string|null $type optional

Имя типа

Returns

mixed

_compile() protected

_compile(array|stringCake\Database\ExpressionInterface $part, Cake\Database\ValueBinder $binder): string

Компилирует соответствующие части в sql

Parameters

array|stringCake\Database\ExpressionInterface $part

Часть для компиляции

Cake\Database\ValueBinder $binder

Генератор Sql

Returns

string

_requiresToExpressionCasting() protected

_requiresToExpressionCasting(array $types): array

Возвращает массив с типами, которые требуют приведения значений к выражениям, из списка имен типов, переданных в качестве параметра.

Parameters

array $types

Список имен типов

Returns

array

add() public

add(arrayCake\Database\ExpressionInterface $conditions = [], arrayCake\Database\ExpressionInterface $values = [], array $types = []): $this

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

Parameters

arrayCake\Database\ExpressionInterface $conditions optional

Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.

arrayCake\Database\ExpressionInterface $values optional

ассоциативный массив значений каждого условия

array $types optional

ассоциативный массив типов, которые будут связаны со значениями

Returns

$this

elseValue() public

elseValue(Cake\Database\ExpressionInterface|string|array|null $value = null, string|null $type = null): void

Устанавливает значение по умолчанию

Parameters

Cake\Database\ExpressionInterface|string|array|null $value optional

Значение для установки

string|null $type optional

Тип значения

Returns

void

sql() public

sql(Cake\Database\ValueBinder $binder): string

Преобразует узел в фрагмент строки SQL.

Parameters

Cake\Database\ValueBinder $binder

Объект генератора заполнителей

Returns

string

traverse() public

traverse(Closure $callback): $this

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

Parameters

Closure $callback

Returns

$this

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

$_conditions protected

Список строк или других объектов выражений, представляющих условия оператора case. Например, один ключ массива может выглядеть как "sum > :value"

Type

array

$_elseValue protected

ELSE значение для оператора case. Если null, то ELSE не будет включено.

Type

stringCake\Database\ExpressionInterface|array|null

$_values protected

Значения, связанные с условиями в массиве $_conditions. Каждое значение представляет 'истинное' значение для условия с соответствующим ключом.

Type

array

© 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/4.2/class-Cake.Database.Expression.CaseExpression.html

Spec-Zone.ru

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