Класс Entity
Сущность представляет собой одну строку результата из репозитория. Она предоставляет методы для получения и сохранения свойств, связанных в этой строке.
- Cake\ORM\Entity реализует Cake\Datasource\EntityInterface, Cake\Datasource\InvalidPropertyInterface использует Cake\Datasource\EntityTrait
Унаследованные свойства
-
_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 - Свойство для проверки.
Возвращает
booleanСм. также
\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\EntityTrait $object , string|null $path null )
Чтение ошибки(ок) из одного или нескольких объектов.
Параметры
- массив|
Cake\Datasource\EntityTrait$object - объект для чтения ошибок
- строка|null
$pathнеобязательно null - имя поля для ошибок
Возвращает
массивaccessible()source public
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 - одно или список свойств для изменения доступности
- boolean|null
$setнеобязательно null true помечает свойство как доступное, false помечает как защищенное.
Возвращает
$this|bool
clean()source public
clean( )
Помечает всю сущность как чистую, что означает, что она будет отображаться как ни одно свойство не модифицировано и не добавлено. Это полезный вызов для начальной гидратации объекта
dirty()source public
dirty( string|null $property null , null|boolean $isDirty null )
Установка состояния «грязного» для отдельного свойства. Если вызвано без второго аргумента, возвращает, было ли свойство изменено после создания объекта.
При вызове без аргументов возвращает, есть ли в сущности грязные свойства
Устарело
3.4.0 Используйте EntityTrait::setDirty() и EntityTrait::isDirty()Параметры
- строка|null
$propertyнеобязательно null - поле для установки или проверки состояния
- null|boolean
$isDirtyнеобязательно null true означает, что свойство было изменено, false — что оно не было изменено, а null заставит функцию вернуть текущее состояние для этого свойства
Возвращает
booleanБыло ли свойство изменено
errors()source public
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->errors('salary');
// Returns all error messages indexed by field name
$entity->errors();
// Sets the error messages for multiple fields at once
$entity->errors(['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 - Возвращать запрошенное свойство только в том случае, если оно загрязнено
Возвращает
arrayextractOriginal()source public
extractOriginal( array $properties )
Возвращает массив с запрошенными исходными свойствами, хранящимися в этом объекте, индексированными по имени свойства.
Свойства, которые не изменились со своего исходного значения, будут включены в результат этого метода.
Параметры
- array
$properties - Список свойств, которые должны быть возвращены
Возвращает
arrayextractOriginalChanged()source public
extractOriginalChanged( array $properties )
Возвращает массив только с исходными свойствами, хранящимися в этом объекте, индексированными по имени свойства.
Этот метод вернет только свойства, которые были изменены с момента создания объекта. Неизмененные свойства будут опущены.
Параметры
- array
$properties - Список свойств, которые должны быть возвращены
Возвращает
arrayget()source public
get( string $property )
Возвращает значение свойства по имени
Параметры
- string
$property - имя свойства для извлечения
Возвращает
mixedИсключения
InvalidArgumentExceptionесли передано пустое имя свойства
getError()source public
getError( string $field )
Возвращает сообщения об ошибках валидации для поля
Параметры
- string
$field - Имя поля, для которого нужно получить ошибки
Возвращает
arraygetErrors()source public
getErrors( )
Возвращает все сообщения об ошибках валидации.
Возвращает
arraygetInvalid()source public
getInvalid( )
Получает список недопустимых полей и их данных для ошибок при валидации/патчинге
Возвращает
arraygetInvalidField()source public
getInvalidField( string $field )
Получает одно значение недопустимого поля. Возвращает null, если не задано.
Параметры
- string
$field - Имя поля.
Возвращает
mixedgetOriginal()source public
getOriginal( string $property )
Возвращает значение исходного свойства по имени
Параметры
- string
$property - имя свойства, для которого требуется получить исходное значение.
Возвращает
mixedИсключения
InvalidArgumentExceptionесли передано пустое имя свойства.
getOriginalValues()source public
getOriginalValues( )
Получает все исходные значения объекта.
Возвращает
arraygetSource()source public
getSource( )
Возвращает псевдоним репозитория, из которого был получен этот объект.
Возвращает
stringgetVirtual()source public
getVirtual( )
Возвращает виртуальные свойства этого объекта.
Возвращает
arrayhas()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, чтобы получить результат true.
При проверке нескольких свойств все свойства должны быть не null, чтобы вернуть true.
Параметры
- string|array
$property - Свойство или свойства для проверки.
Возвращает
booleanhiddenProperties()source public
hiddenProperties( null|array $properties null )
Получает/устанавливает скрытые свойства этого объекта.
Если аргумент properties равен null, возвращаются текущие скрытые свойства. В противном случае скрытые свойства будут установлены.
Устаревшее
3.4.0 Используйте EntityTrait::setHidden() и EntityTrait::getHidden()Параметры
- null|array
$propertiesнеобязательно null - Массив свойств для скрытия или null для получения свойств
Возвращает
array|Cake\Datasource\EntityTrait$this
invalid()source public
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 $property null )
Проверяет, является ли сущность или отдельное свойство грязным.
Параметры
- строка
$propertyнеобязательно null - поле для проверки состояния
Возвращает
логическоеЯвлялось ли свойство измененным
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 параметр с помощью параметра $options:
$entity->set('name', 'Andrew', ['setter' => false]);
$entity->set(['name' => 'Andrew', 'id' => 1], ['setter' => false]); Массовое назначение следует рассматривать осторожно при приёме пользовательских данных; по умолчанию сущности будут защищать все поля, когда свойства назначаются массово. Вы можете отключить защиту для одного вызова set с помощью параметра guard:
$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
Выбрасывает
InvalidArgumentExceptionsetAccess()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 )
Устанавливает состояние «изменено» для отдельного свойства.
Параметры
- строка
$property - поле для установки или проверки состояния
- логическое
$isDirty true означает, что свойство изменено, false — что оно не изменено
Возвращает
$this
setError()source public
setError( string $field , string|array $errors , boolean $overwrite false )
Устанавливает ошибки для отдельного поля
Пример
// Sets the error messages for a single field
$entity->errors('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->errors(['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
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
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
visibleProperties( )
Получить список видимых свойств.
Список видимых свойств — это все стандартные свойства плюс виртуальные свойства минус скрытые свойства.
Возвращает
массивСписок свойств, которые «видимые» во всех представлениях.
Магические методы, унаследованные от Cake\Datasource\EntityInterface
extractOriginal(), extractOriginalChanged(), getError(), getErrors(), getHidden(), getSource(), getVirtual(), isAccessible(), isDirty(), setError(), setErrors() |
Магические методы, унаследованные от Cake\Datasource\InvalidPropertyInterface
getInvalid(), getInvalidField() |
© 2005–2017 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.4/class-Cake.ORM.Entity.html