Spec-Zone.ru › CakePHP 3.8

Класс Сущность

Сущность представляет собой одну строку результата из хранилища. Она предоставляет методы для извлечения и сохранения свойств, связанных в этой строке.

Cake\ORM\Entity реализует Cake\Datasource\EntityInterface, Cake\Datasource\InvalidPropertyInterface использует Cake\Datasource\EntityTrait
Пространство имён: Cake\ORM
Расположение: ORM/Entity.php

Наследуемые свойства

  • _accessible, _accessors, _className, _dirty, _errors, _hidden, _invalid, _new, _original, _properties, _registryAlias, _virtual

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

  • __construct() public

    Инициализирует внутренние свойства этой сущности из ключей в массиве. Можно использовать следующие параметры:

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

__construct()source public

__construct( array $properties = [] , array $options = [] )

Инициализирует внутренние свойства этой сущности из ключей в массиве. Можно использовать следующие параметры:

  • useSetters: использовать ли внутренние установщики для свойств
  • markClean: пометить все свойства как чистые после их установки
  • markNew: экземпляр ещё не был сохранён
  • guard: запретить установку недоступных свойств (по умолчанию: false)
  • source: Строка, представляющая псевдоним хранилища, из которого пришла эта сущность

Пример:

$entity = new Entity(['id' => 1, 'name' => 'Andrew'])

Параметры

массив $properties необязательно []
Хэш свойств, которые нужно установить в этой сущности
массив $options необязательно []
Список параметров для использования при создании этой сущности

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

__debugInfo()source public

__debugInfo( )

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

Возвращает

массив

__get()source public

__get( string $property )

Магический геттер для доступа к свойствам, которые были установлены в этой сущности

Параметры

строка $property
Имя свойства для доступа

Возвращает

смешанное

__isset()source public

__isset( string $property )

Возвращает, содержит ли эта сущность свойство с именем $property, независимо от того, пусто оно или нет.

Параметры

строка $property
Свойство для проверки.

Возвращает

логическое значение

См.

\Cake\ORM\Entity::has()

__set()source public

__set( string $property , mixed $value )

Магический установщик для добавления или редактирования свойства в этой сущности

Параметры

строка $property
Имя свойства, которое нужно установить
смешанное $value
Значение, которое нужно установить для свойства

__toString()source public

__toString( )

Возвращает строковое представление этого объекта в удобочитаемом формате.

Возвращает

строка

__unset()source public

__unset( string $property )

Удаляет свойство из этой сущности

Параметры

строка $property
Свойство для удаления

_accessor()source protected static

_accessor( string $property , string $type )

Получить имя метода-акцессора Методы-акцессоры (доступные или нет) кешируются в $_accessors

Параметры

строка $property
имя поля для получения имени геттера
строка $type
тип акцессора ('get' или 'set')

Возвращает

строка
имя метода или пустая строка (метод недоступен)

_nestedErrors()source protected

_nestedErrors( string $field )

Вспомогательный метод для получения ошибок во вложенных сущностях

Параметры

строка $field
поле в этой сущности, для проверки наличия ошибок

Возвращает

массив
ошибки вложенной сущности, если есть

_readError()source protected

_readError( array|Cake\Datasource\EntityInterface $object , string|null $path = null )

Считывает ошибку(и) из одного или нескольких объектов.

Параметры

массив|Cake\Datasource\EntityInterface $object
Объект для считывания ошибок.
строка|null $path необязательно null
Имя поля для ошибок.

Возвращает

массив

_readHasErrors()source protected

_readHasErrors( mixed $object )

Проверяет наличие ошибок для одного или нескольких объектов.

Параметры

смешанное $object
Объект для проверки ошибок.

Возвращает

логическое значение

accessible()source public deprecated

accessible( string|array $property , boolean|null $set = null )

Сохраняет, можно ли изменить или установить значение свойства в этой сущности. Специальное свойство * также можно пометить как доступное или защищённое, что означает, что любое другое указанное ранее свойство примет его значение. Например, $entity->accessible('*', true) означает, что любое свойство, которое ещё не указано, будет по умолчанию доступно.

Вы также можете вызвать этот метод с массивом свойств, в этом случае каждое из них получит указанное во втором аргументе значение доступности.

Пример:

$entity->accessible('id', true); // Mark id as not protected
$entity->accessible('author_id', false); // Mark author_id as protected
$entity->accessible(['id', 'user_id'], true); // Mark both properties as accessible
$entity->accessible('*', false); // Mark all properties as protected

Если вызывается без второго параметра, возвращается, можно ли установить свойство.

Пример:

$entity->accessible('id'); // Returns whether it can be set or not

Устаревшее

3.4.0 Используйте EntityTrait::setAccess() и EntityTrait::isAccessible()

Параметры

строка|массив $property
одно или список свойств для изменения доступности
логическое значение|null $set необязательно null

true помечает свойство как доступное, false помечает его как защищённое.

Возвращает


$this|логическое значение

clean()source public

clean( )

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

dirty()source public deprecated

dirty( string|null $property = null , null|boolean $isDirty = null )

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

Если вызывается без аргументов, возвращает, есть ли в сущности изменённые свойства.

Устаревшее

3.4.0 Используйте EntityTrait::setDirty() и EntityTrait::isDirty()

Параметры

строка|null $property необязательно null
поле для установки или проверки состояния
null|логическое значение $isDirty необязательно null

true означает, что свойство было изменено, false — что оно не было изменено, а null заставит функцию вернуть текущее состояние для этого свойства

Возвращает

логическое значение
Было ли свойство изменено или нет
END_OF_DOCUMENT_MARKER

errors()source public deprecated

errors( string|array|null $field = null , string|array|null $errors = null , boolean $overwrite = false )

Устанавливает сообщения об ошибках для поля или списка полей. Если вызывается без второго аргумента, возвращает сообщения об ошибках валидации для указанных полей. Если вызывается без аргументов, возвращает все сообщения об ошибках валидации, сохранённые в этой сущности и любых других вложенных сущностях.

Пример

// Sets the error messages for a single field
$entity->errors('salary', ['must be numeric', 'must be a positive number']);

// Returns the error messages for a single field
$entity->getErrors('salary');

// Returns all error messages indexed by field name
$entity->getErrors();

// Sets the error messages for multiple fields at once
$entity->getErrors(['salary' => ['message'], 'name' => ['another message']);

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

Устаревшее

3.4.0 Используйте EntityTrait::setError(), EntityTrait::setErrors(), EntityTrait::getError() и EntityTrait::getErrors()

Параметры

string|array|null $field необязательный null
Поле, для которого нужно получить ошибки, или массив ошибок для установки.
string|array|null $errors необязательный null
Ошибки для установки для $field
boolean $overwrite необязательный false
Перезаписывать ли существующие ошибки для $field

Возвращает

array|Cake\Datasource\EntityTrait
$this

extract()source public

extract( array $properties , boolean $onlyDirty = false )

Возвращает массив с запрошенными свойствами, хранящимися в этой сущности, индексированными по имени свойства.

Параметры

array $properties
список свойств, которые нужно вернуть
boolean $onlyDirty необязательный false
Возвращать запрошенное свойство только если оно изменилось

Возвращает

array

extractOriginal()source public

extractOriginal( array $properties )

Возвращает массив с исходными запрошенными свойствами, хранящимися в этой сущности, индексированными по имени свойства.

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

Параметры

array $properties
Список свойств, которые нужно вернуть

Возвращает

array

extractOriginalChanged()source public

extractOriginalChanged( array $properties )

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

Этот метод вернёт только те свойства, которые были изменены с момента создания сущности. Неизменённые свойства будут опушены.

Параметры

array $properties
Список свойств, которые нужно вернуть

Возвращает

array

get()source public

get( string $property )

Возвращает значение свойства по имени.

Параметры

string $property
имя свойства для извлечения

Возвращает

mixed

Исключения

InvalidArgumentException
если передано пустое имя свойства

getDirty()source public

getDirty( )

Возвращает изменённые свойства.

Возвращает

string[]

getError()source public

getError( string $field )

Возвращает сообщения об ошибках для поля.

Параметры

string $field
Имя поля, для которого необходимо получить ошибки

Возвращает

array

getErrors()source public

getErrors( )

Возвращает все сообщения об ошибках валидации.

Возвращает

array

getHidden()source public

getHidden( )

Возвращает скрытые свойства.

Возвращает

array

getInvalid()source public

getInvalid( )

Возвращает список недопустимых полей и их данных для ошибок при валидации/обновлении.

Возвращает

array

getInvalidField()source public

getInvalidField( string $field )

Возвращает одиночное значение недопустимого поля. Возвращает null, если значение не задано.

Параметры

string $field
Имя поля.

Возвращает

mixed

getOriginal()source public

getOriginal( string $property )

Возвращает значение исходного свойства по имени.

Параметры

string $property
имя свойства, для которого нужно получить исходное значение.

Возвращает

mixed

Исключения

InvalidArgumentException
если передано пустое имя свойства.

getOriginalValues()source public

getOriginalValues( )

Возвращает все исходные значения сущности.

Возвращает

array

getSource()source public

getSource( )

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

Возвращает

string

getVirtual()source public

getVirtual( )

Возвращает виртуальные свойства этой сущности.

Возвращает

array

getVisible()source public

getVisible( )

Возвращает список видимых свойств.

Список видимых свойств - это все стандартные свойства плюс виртуальные свойства минус скрытые свойства.

Возвращает

array

Список свойств, которые «видимые» во всех представлениях.


has()source public

has( string|array $property )

Возвращает true, если в этой сущности есть свойство с именем $property, содержащее ненулевое значение.

Пример:

$entity = new Entity(['id' => 1, 'name' => null]);
$entity->has('id'); // true
$entity->has('name'); // false
$entity->has('last_name'); // false

Вы можете проверить несколько свойств, передав массив:

$entity->has(['name', 'last_name']);

Все свойства должны быть не равны null, чтобы получить истинное значение.

При проверке нескольких свойств, все свойства должны быть не равны null, чтобы вернуть true.

Параметры

string|array $property
Свойство или свойства для проверки.

Возвращает

boolean

hasErrors()source public

hasErrors( boolean $includeNested = true )

Возвращает true, если в этой сущности есть ошибки.

Параметры

boolean $includeNested необязательный true
true проверит вложенные сущности на hasErrors()

Возвращает

boolean

hasValue()source public

hasValue( string $property )

Проверяет, имеет ли свойство значение.

Этот метод вернёт true для

  • Непустых строк
  • Непустых массивов
  • Любого объекта
  • Целого числа, даже 0
  • Числа с плавающей точкой, даже 0.0

и false во всех остальных случаях.

Параметры

string $property
Свойство для проверки.

Возвращает

boolean

hiddenProperties()source public deprecated

hiddenProperties( null|array $properties = null )

Получение/Установка скрытых свойств в этом объекте.

Если аргумент properties равен null, будут возвращены текущие скрытые свойства. В противном случае скрытые свойства будут установлены.

Устаревшее

3.4.0 Используйте EntityTrait::setHidden() и EntityTrait::getHidden()

Параметры

null|массив $properties необязательно null
Массив свойств для скрытия или null для получения свойств

Возвращает

массив|Cake\Datasource\EntityTrait
$this

invalid()source public deprecated

invalid( string|array|null $field = null , mixed|null $value = null , boolean $overwrite = false )

Помечает поле как недействительное и не подлежащее исправлению в объекте.

Это полезно для пакетных операций, когда нужно получить исходное значение для сообщения об ошибке после исправления. Это значение не может быть исправлено в объекте и просто копируется в свойство _invalid для отладки или для ведения журнала.

Устаревшее

3.5 Используйте getInvalid()/getInvalidField()/setInvalid() вместо этого.

Параметры

строка|массив|null $field необязательно null
Поле, для которого нужно получить недействительное значение, или значение для установки.
смешанное|null $value необязательно null
Недействительное значение для установки для $field.
логическое $overwrite необязательно false
Заменять ли существующие значения для $field.

Возвращает


$this|смешанное

isAccessible()source public

isAccessible( string $property )

Проверяет доступность свойства

Пример:

$entity->isAccessible('id'); // Returns whether it can be set or not

Параметры

строка $property
Имя свойства для проверки

Возвращает

логическое

isDirty()source public

isDirty( string|null $property = null )

Проверяет, является ли сущность измененной или отдельное свойство измененного.

Параметры

строка|null $property необязательно null
Поле для проверки статуса. Null для всей сущности.

Возвращает

логическое
Было ли свойство изменено или нет

isEmpty()source public

isEmpty( string $property )

Проверяет, пусто ли свойство

Это не работает так же, как функция PHP empty() . Метод вернет true для:

  • '' (пустая строка)
  • null
  • []

и false во всех остальных случаях.

Параметры

строка $property
Свойство для проверки.

Возвращает

логическое

isNew()source public

isNew( boolean|null $new = null )

Возвращает, была ли эта сущность уже сохранена. Этот метод может вернуть null в случае отсутствия предварительной информации о статусе этой сущности.

Если вызывается с логическим значением, он установит известный статус этого экземпляра: true означает, что экземпляр еще не сохранен в базе данных, false — что он уже сохранен.

Параметры

логическое|null $new необязательно null
true, если известно, что этот экземпляр еще не был сохранен

Возвращает

логическое
Была ли сущность сохранена.

jsonSerialize()source public

jsonSerialize( )

Возвращает свойства, которые будут сериализованы как JSON

Возвращает

массив

offsetExists()source public

offsetExists( mixed $offset )

Реализует isset($entity);

Параметры

смешанное $offset
Смещение для проверки.

Возвращает

логическое
Успешно

offsetGet()source public

offsetGet( mixed $offset )

Реализует $entity[$offset];

Параметры

смешанное $offset
Смещение для получения.

Возвращает

смешанное

offsetSet()source public

offsetSet( mixed $offset , mixed $value )

Реализует $entity[$offset] = $value;

Параметры

смешанное $offset
Смещение для установки.
смешанное $value
Значение для установки.

offsetUnset()source public

offsetUnset( mixed $offset )

Реализует unset($result[$offset]);

Параметры

смешанное $offset
Смещение для удаления.

set()source public

set( string|array $property , mixed $value = null , array $options = [] )

Устанавливает отдельное свойство в этой сущности.

Пример:

$entity->set('name', 'Andrew');

Также можно массово назначить несколько свойств этой сущности одним вызовом, передав массивы свойств в виде пар свойство => значение

Пример:

$entity->set(['name' => 'andrew', 'id' => 1]);
echo $entity->name // prints andrew
echo $entity->id // prints 1

Иногда удобно обойти функции-сеттеры в этой сущности при назначении свойств. Это можно сделать, отключив параметр setter с помощью параметра %%%CODE_BLOCK_121%%:

$entity->set('name', 'Andrew', ['setter' => false]);
$entity->set(['name' => 'Andrew', 'id' => 1], ['setter' => false]);

Массовое назначение следует рассматривать осторожно при приеме пользовательского ввода; по умолчанию сущности будут защищать все поля при массовом назначении свойств. Вы можете отключить защиту для одного вызова set с помощью параметра %%%CODE_BLOCK_123%%:

$entity->set(['name' => 'Andrew', 'id' => 1], ['guard' => true]);

При назначении отдельных свойств использовать параметр защиты необязательно:

// No need to use the guard option.
$entity->set('name', 'Andrew');

Параметры

строка|массив $property

имя свойства для установки или список свойств со значениями

смешанное $value необязательно null

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

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

опции для установки свойства. Допустимые ключи опций — setter и guard

Возвращает


$this

Выбрасывает

InvalidArgumentException

setAccess()source public

setAccess( string|array $property , boolean $set )

Хранит информацию о том, можно ли изменить или установить значение свойства в этой сущности. Специальное свойство * также может быть помечено как доступное или защищенное, что означает, что любое другое указанное ранее свойство примет его значение. Например, $entity->setAccess('*', true) означает, что любое не указанное ранее свойство будет доступно по умолчанию.

Вы также можете вызвать этот метод с массивом свойств, в этом случае каждое из них получит значение доступности, указанное во втором аргументе.

Пример:

$entity->setAccess('id', true); // Mark id as not protected
$entity->setAccess('author_id', false); // Mark author_id as protected
$entity->setAccess(['id', 'user_id'], true); // Mark both properties as accessible
$entity->setAccess('*', false); // Mark all properties as protected

Параметры

строка|массив $property
одно или список свойств, чтобы изменить их доступность
логическое $set

true помечает свойство как доступное, false — как защищенное.

Возвращает


$this

setDirty()source public

setDirty( string $property , boolean $isDirty = true )

Устанавливает статус изменения отдельного свойства.

Параметры

строка $property
поле для установки или проверки статуса
логическое $isDirty необязательно true

true означает, что свойство было изменено, false — что оно не было изменено. По умолчанию true.

Возвращает


$this
END_OF_DOCUMENT_MARKER

setError()source public

setError( string $field , string|array $errors , boolean $overwrite = false )

Устанавливает ошибки для отдельного поля

Пример

// Sets the error messages for a single field
$entity->setError('salary', ['must be numeric', 'must be a positive number']);

Параметры

строка $field
Поле, для которого нужно получить ошибки, или массив ошибок для установки.
строка|массив $errors
Ошибки, которые нужно установить для $field
булево $overwrite необязательно false
Заменять ли существующие ошибки для $field

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


$this

setErrors()source public

setErrors( array $fields , boolean $overwrite = false )

Устанавливает сообщения об ошибках для сущности

Пример

// Sets the error messages for multiple fields at once
$entity->setErrors(['salary' => ['message'], 'name' => ['another message']]);

Параметры

массив $fields
Массив ошибок для установки.
булево $overwrite необязательно false
Заменять ли существующие ошибки для $fields

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


$this

setHidden()source public

setHidden( array $properties , boolean $merge = false )

Устанавливает скрытые свойства.

Параметры

массив $properties
Массив свойств, которые нужно скрыть из экспорта в массив.
булево $merge необязательно false
Объединить новые свойства с существующими. По умолчанию false.

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


$this

setInvalid()source public

setInvalid( array $fields , boolean $overwrite = false )

Устанавливает поля как невалидные и не подлежащие корректировке в сущности.

Это полезно для пакетных операций, когда необходимо получить исходное значение для сообщения об ошибке после исправления. Это значение не может быть исправлено в сущности и просто копируется в свойство _invalid для отладки или для возможности его записи.

Параметры

массив $fields
Значения для установки.
булево $overwrite необязательно false
Заменять ли существующие значения для $field.

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


$this

setInvalidField()source public

setInvalidField( string $field , mixed $value )

Устанавливает поле как невалидное и не подлежащее корректировке в сущности.

Параметры

строка $field
Значение для установки.
смешанное $value
Невалидное значение для установки для $field.

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


$this

setSource()source public

setSource( string $alias )

Устанавливает псевдоним источника

Параметры

строка $alias
псевдоним хранилища

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


$this

setVirtual()source public

setVirtual( array $properties , boolean $merge = false )

Устанавливает виртуальные свойства в этой сущности.

Параметры

массив $properties
Массив свойств, которые нужно обрабатывать как виртуальные.
булево $merge необязательно false
Объединить новые свойства с существующими. По умолчанию false.

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


$this

source()source public deprecated

source( string|null $alias = null )

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

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

Устаревшее

3.4.0 Используйте EntityTrait::getSource() и EntityTrait::setSource()

Параметры

строка|null $alias необязательно null
псевдоним хранилища

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

строка|Cake\Datasource\EntityTrait
$this

toArray()source public

toArray( )

Возвращает массив со всеми свойствами, которые были установлены для этой сущности

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

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

массив

unsetProperty()source public

unsetProperty( string|array $property )

Удаляет свойство или список свойств из этой сущности

Примеры:

$entity->unsetProperty('name');
$entity->unsetProperty(['name', 'last_name']);

Параметры

строка|массив $property
Свойство для удаления.

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


$this

virtualProperties()source public deprecated

virtualProperties( null|array $properties = null )

Получение/установка виртуальных свойств этой сущности.

Если аргумент properties равен null, возвращаются текущие виртуальные свойства. В противном случае виртуальные свойства будут установлены.

Устаревшее

3.4.0 Используйте EntityTrait::getVirtual() и EntityTrait::setVirtual()

Параметры

null|массив $properties необязательно null
Массив свойств, которые нужно обрабатывать как виртуальные, или null для получения свойств

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

массив|Cake\Datasource\EntityTrait
$this

visibleProperties()source public deprecated

visibleProperties( )

Получение списка видимых свойств.

Список видимых свойств включает все стандартные свойства плюс виртуальные свойства минус скрытые свойства.

Устаревшее

3.8.0 Используйте getVisible() вместо этого.

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

массив

Список свойств, которые «видимы» во всех представлениях.


Магические методы, унаследованные от Cake\Datasource\EntityInterface

extractOriginal(), extractOriginalChanged(), getError(), getErrors(), getHidden(), getSource(), getVirtual(), getVisible(), hasErrors(), isAccessible(), isDirty(), setError(), setErrors()

Магические методы, унаследованные от Cake\Datasource\InvalidPropertyInterface

getInvalid(), getInvalidField()

© 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.ORM.Entity.html

Spec-Zone.ru

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