Spec-Zone.ru › CakePHP 3.8

Класс CaseExpression

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

Cake\Database\Expression\CaseExpression реализует Cake\Database\ExpressionInterface использует Cake\Database\Type\ExpressionTypeCasterTrait
Пространство имен: Cake\Database\Expression
Расположение: Database/Expression/CaseExpression.php

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

  • $_conditions protected
    array

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

  • $_elseValue protected
    string|Cake\Database\ExpressionInterface|array|null
    Значение по умолчанию для оператора case. Если null, то значение по умолчанию не будет включено.
  • $_values protected
    array

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

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

  • __construct() public
    Конструктор выражения case
  • _addExpressions() protected

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

  • _compile() protected
    Компилирует соответствующие части в SQL
  • add() public

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

  • elseValue() public
    Устанавливает значение по умолчанию
  • sql() public
    Преобразует узел в фрагмент SQL-строки.
  • traverse() public

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

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

__construct()source public

__construct( 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 используется как значение по умолчанию.

массив $types необязательно []

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

_addExpressions()source protected

_addExpressions( array|Cake\Database\ExpressionInterface $conditions , array|Cake\Database\ExpressionInterface $values , array $types )

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

Параметры

массив|Cake\Database\ExpressionInterface $conditions
Должен быть экземпляром ExpressionInterface или массивом экземпляров ExpressionInterface.
массив|Cake\Database\ExpressionInterface $values
ассоциативный массив значений каждого условия
массив $types
ассоциативный массив типов, которые будут связаны со значениями

_compile()source protected

_compile( array|string|Cake\Database\ExpressionInterface $part , Cake\Database\ValueBinder $generator )

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

Параметры

массив|строка|Cake\Database\ExpressionInterface $part
Часть для компиляции
Cake\Database\ValueBinder $generator
Генератор SQL

Возвращает

строка

add()source public

add( array|Cake\Database\ExpressionInterface $conditions = [] , array|Cake\Database\ExpressionInterface $values = [] , array $types = [] )

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

Параметры

массив|Cake\Database\ExpressionInterface $conditions необязательно []
Должен быть экземпляром ExpressionInterface или массивом экземпляров ExpressionInterface.
массив|Cake\Database\ExpressionInterface $values необязательно []
ассоциативный массив значений каждого условия
массив $types необязательно []
ассоциативный массив типов, которые будут связаны со значениями

Возвращает


$this

elseValue()source public

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

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

Параметры

Cake\Database\ExpressionInterface|строка|массив|null $value необязательно null
Значение для установки
строка|null $type необязательно null
Тип значения

sql()source public

sql( Cake\Database\ValueBinder $generator )

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

Параметры

Cake\Database\ValueBinder $generator
Объект генератора заполнителей

Возвращает

строка

Реализация

Cake\Database\ExpressionInterface::sql()

traverse()source public

traverse( callable $visitor )

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

Параметры

вызываемый объект $visitor
Вызываемый объект, который нужно применить ко всем узлам.

Реализация

Cake\Database\ExpressionInterface::traverse()

Методы, используемые из Cake\Database\Type\ExpressionTypeCasterTrait

_castToExpression()source protected

_castToExpression( mixed $value , string $type )

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

Параметры

смешанный $value
Значение, которое нужно преобразовать в ExpressionInterface
строка $type
Имя типа

Возвращает

смешанный

_requiresToExpressionCasting()source protected

_requiresToExpressionCasting( array $types )

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

Параметры

массив $types
Список имен типов

Возвращает

массив

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

$_conditionssource

protected массив

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

[]

$_elseValuesource

protected строка|Cake\Database\ExpressionInterface|массив|null

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

$_valuessource

protected массив

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

[]

© 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.CaseExpression.html

Spec-Zone.ru

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