Spec-Zone.ru › CakePHP 3.6

Класс 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. Каждое значение представляет истинное значение для условия с соответствующим ключом.

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

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

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

  • _compile() protected
    Компилирует необходимые части в SQL
  • add() public

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

  • 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 )

Перебирает переданные условия и гарантирует, что для каждого из них есть соответствующее истинное значение. Если соответствующего истинного значения нет, то оно по умолчанию устанавливается в '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 = [] )

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

Параметры

массив|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.6/class-Cake.Database.Expression.CaseExpression.html

Spec-Zone.ru

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