Spec-Zone.ru › CakePHP 3.7

Класс FunctionExpression

Этот класс представляет строку вызова функции в операторе SQL. Вызовы могут быть построены путём передачи имени функции и списка параметров. По соображениям безопасности все передаваемые параметры по умолчанию заключаются в кавычки, если не указано иное.

Cake\Database\Expression\QueryExpression реализует Cake\Database\ExpressionInterface, Countable использует Cake\Database\TypeMapTrait
Extended by Cake\Database\Expression\FunctionExpression реализует Cake\Database\TypedResultInterface использует Cake\Database\Type\ExpressionTypeCasterTrait , Cake\Database\TypedResultTrait
Пространство имён: Cake\Database\Expression
Расположение: Database/Expression/FunctionExpression.php

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

  • $_name protected
    string
    Имя функции, которое будет построено при генерации строки SQL

Унаследованные свойства

  • _conditions, _conjunction _typeMap _returnType

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

  • __construct() public

    Конструктор. Принимает имя вызываемой функции и список параметров, передаваемых в функцию. Дополнительно можно передать список типов для каждого связанного параметра.

  • add() public
    Добавляет один или несколько аргументов для вызова функции.
  • count() public

    Имя функции само по себе является выражением для генерации, поэтому всегда добавляет 1 к количеству выражений, хранящихся в этом объекте.

  • getName() public
    Получает имя SQL-функции, которая должна быть вызвана в этом выражении.
  • name() public deprecated

    Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении. Если значение не передано, возвращает текущее имя.

  • setName() public
    Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении.
  • sql() public

    Возвращает строковое представление этого объекта, чтобы его можно было использовать в запросе SQL. Обратите внимание, что значения условных значений не включены в строку, вместо них используются заглушки, которые могут быть заменены соответствующими значениями в кавычках.

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

__construct()source public

__construct( string $name , array $params = [] , array $types = [] , string $returnType = 'string' )

Конструктор. Принимает имя вызываемой функции и список параметров, передаваемых в функцию. Дополнительно можно передать список типов для каждого связанного параметра.

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

Примеры:

$f = new FunctionExpression('CONCAT', ['CakePHP', ' rules']);

Предыдущая строка сгенерирует CONCAT('CakePHP', ' rules')

$f = new FunctionExpression('CONCAT', ['name' => 'literal', ' rules']);

Что даст CONCAT(name, ' rules')

Параметры

строка $name
имя строящейся функции
массив $params необязательно []

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

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

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

строка $returnType необязательно 'string'
Тип возвращаемого значения этого выражения

Переопределяет

Cake\Database\Expression\QueryExpression::__construct()

add()source public

add( array $params , array $types = [] , boolean $prepend = false )

Добавляет один или несколько аргументов для вызова функции.

Параметры

массив $params

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

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

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

логическое значение $prepend необязательно false
Добавлять аргументы в начало или конец списка

Возвращает


$this

См.

\Cake\Database\Expression\FunctionExpression::__construct() для получения дополнительной информации.

Переопределяет

Cake\Database\Expression\QueryExpression::add()

count()source public

count( )

Имя функции само по себе является выражением для генерации, поэтому всегда добавляет 1 к количеству выражений, хранящихся в этом объекте.

Возвращает

целое число

Переопределяет

Cake\Database\Expression\QueryExpression::count()

getName()source public

getName( )

Получает имя SQL-функции, которая должна быть вызвана в этом выражении.

Возвращает

строка

name()source public deprecated

name( string|null $name = null )

Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении. Если значение не передано, возвращает текущее имя.

Устарело

3.4.0 Используйте setName()/getName() вместо этого.

Параметры

строка|null $name необязательно null
Имя функции

Возвращает

строка|Cake\Database\Expression\FunctionExpression
$this

setName()source public

setName( string $name )

Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении.

Параметры

строка $name
Имя функции

Возвращает


$this

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

__clone()source public

__clone( )

Клонирует этот объект и его поддерево выражений.

_addConditions()source protected

_addConditions( array $conditions , array $types )

Вспомогательная функция, используемая для разбиения вложенного массива условий и построения древовидной структуры внутри этого объекта для представления полного SQL-выражения. Строковые условия хранятся непосредственно в условиях, а любые другие представления обернуты в соответствующий экземпляр или этого класса.

Параметры

массив $conditions
список условий, которые должны быть сохранены в этом объекте
массив $types
список типов, связанных с полями, на которые ссылаются в $conditions

_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\ExpressionInterface

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 optional []

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

массив $types optional []

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

Возвращаемое значение


$this

and_()source public

and_( callable|string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )

Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает конъюнкцию на «И»

Параметры

функция|строка|массив|Cake\Database\ExpressionInterface $conditions
для объединения с И
массив $types optional []

ассоциативный массив полей, указывающих на тип значений, которые передаются. Используется для правильной привязки значений к операторам.

Возвращаемое значение

Cake\Database\Expression\QueryExpression

between()source public

between( string|Cake\Database\ExpressionInterface $field , mixed $from , mixed $to , string|null $type = null )

Добавляет новое условие в объект выражения в виде «поле МЕЖДУ от И до».

Параметры

строка|Cake\Database\ExpressionInterface $field
Имя поля для сравнения с диапазоном значений.
смешанное $from
Начальное значение диапазона.
смешанное $to
Конечное значение диапазона сравнения.
строка|null $type optional null
имя типа для $value, настроенного с помощью Type map.

Возвращаемое значение


$this

eq()source public

eq( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )

Добавляет новое условие в объект выражения в виде «поле = значение».

Параметры

строка|Cake\Database\ExpressionInterface $field
Базовое поле, которое сравнивается со значением.
смешанное $value
Значение, которое должно быть привязано к $field для сравнения.
строка|null $type optional null

имя типа для $value, настроенного с помощью Type map. Если оно заканчивается на «[]», а значение является массивом, то будут созданы несколько заготовок, по одной на каждое значение в массиве.

Возвращаемое значение


$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 optional null
имя типа для $value, настроенного с помощью Type map.

Возвращаемое значение


$this

gte()source public

gte( string|Cake\Database\ExpressionInterface $field , mixed $value , string|null $type = null )

Добавляет новое условие в объект выражения в виде «поле >= значение».

Параметры

строка|Cake\Database\ExpressionInterface $field
Базовое поле, которое сравнивается со значением.
смешанное $value
Значение, которое должно быть привязано к $field для сравнения.
строка|null $type optional null
имя типа для $value, настроенного с помощью Type map.

Возвращаемое значение


$this

hasNestedExpression()source public

hasNestedExpression( )

Возвращает true, если это выражение содержит другие вложенные объекты ExpressionInterface.

Возвращаемое значение

boolean

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 optional null
имя типа для $value, настроенного с помощью Type map.

Возвращаемое значение


$this

isCallable()source public

isCallable( callable $c )

Проверьте, является ли вызываемый объект допустимым.

Мы не принимаем обратные вызовы типа ['class', 'method'], так как они часто содержат данные пользователя, а массивы строк легко подсунуть.

Параметры

вызываемый объект $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 )

Добавляет новое условие к объекту выражения в форме «поле равно 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 )

Добавляет новое условие к объекту выражения в форме «поле ПОДОБНО значение».

Параметры

строка|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
Значение, которое будет привязано к $field для сравнения
строка|null $type необязательно null
имя типа для $value, как настроено с помощью карты типов.

Возвращаемые значения


$this

not()source public

not( string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )

Добавляет новый набор условий к этому уровню дерева и инвертирует конечный результат, добавив 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
Значение, которое будет привязано к $field для сравнения
строка|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
значение, которое будет привязано к $field для сравнения
строка|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
Значение, которое будет привязано к $field для сравнения
строка|null $type необязательно null
имя типа для $value, как настроено с помощью карты типов.

Возвращаемые значения


$this

or_()source public

or_( callable|string|array|Cake\Database\ExpressionInterface $conditions , array $types = [] )

Возвращает новый объект QueryExpression, содержащий все переданные условия, и настраивает сочленение на «ИЛИ».

Параметры

вызываемый объект|строка|массив|Cake\Database\ExpressionInterface $conditions
для объединения с ИЛИ
массив $types необязательно []

ассоциативный массив полей, указывающих на тип значений, которые передаются. Используется для правильной привязки значений к операторам.

Возвращаемые значения

Cake\Database\Expression\QueryExpression

setConjunction()source public

setConjunction( string $conjunction )

Изменяет сочленение для условий на этом уровне дерева выражений.

Параметры

строка $conjunction
Значение, используемое для объединения условий

Возвращаемые значения


$this

tieWith()source public deprecated

tieWith( string|null $conjunction = null )

Изменяет союзи для условий на этом уровне дерева выражения. Если вызывается без аргументов, возвращает текущее значение конфигурации.

Устарело

3.4.0 Используйте setConjunction()/getConjunction() вместо этого.

Параметры

string|null $conjunction optional 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 optional null

значение, используемое для объединения условий. Если null, не устанавливает значение, а возвращает текущее сохраненное

Возвращает

string|Cake\Database\Expression\QueryExpression
$this

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

_castToExpression()source protected

_castToExpression( mixed $value , string $type )

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

Параметры

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

Возвращает

mixed

_requiresToExpressionCasting()source protected

_requiresToExpressionCasting( array $types )

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

Параметры

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

Возвращает

array

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

getReturnType()source public

getReturnType( )

Получает тип значения, которое сгенерирует этот объект.

Возвращает

string

returnType()source public deprecated

returnType( string|null $type = null )

Устанавливает тип значения, которое сгенерирует этот объект. Если вызывается без аргументов, возвращает текущий известный тип

Устарело

3.5.0 Используйте getReturnType()/setReturnType() вместо этого.

Параметры

string|null $type optional null
Имя типа, который должен быть возвращен

Возвращает

string|Cake\Database\TypedResultTrait
$this

setReturnType()source public

setReturnType( string $type )

Устанавливает тип значения, которое сгенерирует этот объект.

Параметры

string $type
Имя типа, который должен быть возвращен

Возвращает


$this

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

defaultTypes()source public deprecated

defaultTypes( array $types = null )

Позволяет устанавливать значения по умолчанию для типов при цепочечном запросе

Устарело

3.4.0 Используйте setDefaultTypes()/getDefaultTypes() вместо этого.

Параметры

array $types optional null
Массив типов для установки.

Возвращает


$this|array

getDefaultTypes()source public

getDefaultTypes( )

Получает значения типов по умолчанию для текущей карты типов.

Возвращает

array

getTypeMap()source public

getTypeMap( )

Возвращает существующую карту типов.

Возвращает

Cake\Database\TypeMap

setDefaultTypes()source public

setDefaultTypes( array $types )

Перезаписывает значения типов по умолчанию для полей в реализующем объект.

Этот метод полезен, если вам необходимо установить сопоставления типов, которые используются в нескольких функциях/выражениях в запросе.

Чтобы добавить значение по умолчанию без перезаписи существующих, используйте getTypeMap()->addDefaults()

Параметры

array $types
Массив типов для установки.

Возвращает


$this

См. также

\Cake\Database\TypeMap::setDefaults()

setTypeMap()source public

setTypeMap( array|Cake\Database\TypeMap $typeMap )

Создает новую карту типов, если $typeMap является массивом, в противном случае меняет ее на заданную.

Параметры

array|Cake\Database\TypeMap $typeMap
Создает карту типов, если массив, в противном случае устанавливает заданную карту типов

Возвращает


$this

typeMap()source public deprecated

typeMap( array|Cake\Database\TypeMap|null $typeMap = null )

Создает новую карту типов, если $typeMap является массивом, в противном случае возвращает существующую карту типов или меняет ее на заданную.

Устарело

3.4.0 Используйте setTypeMap()/getTypeMap() вместо этого.

Параметры

array|Cake\Database\TypeMap|null $typeMap optional null
Создает карту типов, если массив, в противном случае устанавливает заданную карту типов

Возвращает


$this|\Cake\Database\TypeMap

Магические методы унаследованы от Cake\Database\TypedResultInterface

getReturnType()

Подробности свойств

$_namesource

protected string

Имя функции, которая будет построена при генерации строки SQL

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

Spec-Zone.ru

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