Класс 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 - Свойство для проверки.
Возвращает
булево значениеСм. также
\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 - одно или список свойств для изменения доступности
- булево значение или 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 или булево значение
$isDirtyнеобязательно null true означает, что свойство было изменено, false — что оно не было изменено, а null заставит функцию вернуть текущее состояние для этого свойства
Возвращает
булево значениеБыло ли свойство изменено
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 - Имя поля для получения сообщений об ошибках.
Возвращает
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 )
Возвращает, содержит ли этот объект свойство с именем $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 - Свойство или свойства для проверки.
Возвращает
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().Параметры
- string|array|null
$fieldнеобязательно null - Поле, для которого нужно получить некорректное значение, или значение для установки.
- mixed|null
$valueнеобязательно null - Некорректное значение, которое нужно установить для $field.
- boolean
$overwriteнеобязательно false - Заменять ли существующие значения для $field.
Возвращает
$this|mixed
isAccessible()source public
isAccessible( string $property )
Проверяет, доступно ли свойство
Пример:
$entity->isAccessible('id'); // Returns whether it can be set or not Параметры
- string
$property - Имя свойства для проверки
Возвращает
booleanisDirty()source public
isDirty( string|null $property null )
Проверяет, является ли сущность измененной или является ли изменённым одно из её свойств.
Параметры
- string|null
$propertyнеобязательно null - Поле для проверки состояния. Значение null для всей сущности.
Возвращает
booleanИзменилось ли свойство
isNew()source public
isNew( boolean|null $new null )
Возвращает, была ли эта сущность уже сохранёна. Этот метод может возвращать null, если нет предварительной информации о состоянии этой сущности.
Если вызывается с булевым значением, оно установит известный статус этого экземпляра. true означает, что экземпляр ещё не сохранён в базе данных, false — что уже сохранён.
Параметры
- boolean|null
$newнеобязательно null - true, если известно, что этот экземпляр ещё не был сохранён
Возвращает
booleanБыла ли сущность сохранена.
jsonSerialize()source public
jsonSerialize( )
Возвращает свойства, которые будут сериализованы как JSON
Возвращает
arrayoffsetExists()source public
offsetExists( mixed $offset )
Реализует isset($entity);
Параметры
- mixed
$offset - Смещение для проверки.
Возвращает
booleanУспешно
offsetGet()source public
offsetGet( mixed $offset )
Реализует $entity[$offset];
Параметры
- mixed
$offset - Смещение для получения.
Возвращает
mixedoffsetSet()source public
offsetSet( mixed $offset , mixed $value )
Реализует $entity[$offset] = $value;
Параметры
- mixed
$offset - Смещение для установки.
- mixed
$value - Значение для установки.
offsetUnset()source public
offsetUnset( mixed $offset )
Реализует unset($result[$offset]);
Параметры
- mixed
$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'); Параметры
- string|array
$property имя свойства для установки или список свойств со значениями
- mixed
$valueнеобязательно null Значение для установки свойства или массив, если первый аргумент тоже массив, в этом случае он будет рассматриваться как $options
- array
$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 Параметры
- string|array
$property - одно или список свойств для изменения доступности
- boolean
$set true помечает свойство как доступное, false — как защищённое.
Возвращает
$this
setDirty()source public
setDirty( string $property , boolean $isDirty )
Устанавливает состояние грязности отдельного свойства.
Параметры
- string
$property - поле для установки или проверки статуса
- boolean
$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']); Параметры
- string
$field - Поле для получения ошибок или массив ошибок для установки.
- string|array
$errors - Ошибки, которые нужно установить для $field
- boolean
$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']);
Параметры
- array
$fields - Массив ошибок для установки.
- boolean
$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–2018 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.5/class-Cake.ORM.Entity.html