Класс 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'])
Параметры
- array
$propertiesoptional [] - Хэш свойств для установки в этой сущности
- array
$optionsoptional [] - Список параметров для создания этой сущности
Методы, используемые из Cake\Datasource\EntityTrait
__debugInfo()source public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
array__get()source public
__get( string $property )
Магический геттер для доступа к свойствам, установленным в этой сущности
Параметры
- string
$property - Имя свойства для доступа
Возвращает
mixed__isset()source public
__isset( string $property )
Возвращает, содержит ли эта сущность свойство с именем $property, независимо от того, пусто оно или нет.
Параметры
- string
$property - Свойство для проверки.
Возвращает
booleanСм. также
\Cake\ORM\Entity::has()__set()source public
__set( string $property , mixed $value )
Магический сеттер для добавления или изменения свойства в этой сущности
Параметры
- string
$property - Имя свойства для установки
- mixed
$value - Значение для установки свойства
__toString()source public
__toString( )
Возвращает строковое представление этого объекта в удобочитаемом формате.
Возвращает
string__unset()source public
__unset( string $property )
Удаляет свойство из этой сущности
Параметры
- string
$property - Свойство для удаления
_accessor()source protected static
_accessor( string $property , string $type )
Получить имя метода-аксессора. Методы-аксессоры (доступные или нет) кэшируются в $_accessors
Параметры
- string
$property - имя поля для получения имени геттера
- string
$type - тип аксессора ('get' или 'set')
Возвращает
stringимя метода или пустую строку (метод недоступен)
_nestedErrors()source protected
_nestedErrors( string $field )
Вспомогательный метод для получения ошибок во вложенных сущностях
Параметры
- string
$field - поле в этой сущности для проверки ошибок
Возвращает
arrayошибки во вложенной сущности, если есть
_readError()source protected
_readError( array|Cake\Datasource\EntityInterface $object , string|null $path = null )
Считывание ошибки(ок) из одного или нескольких объектов.
Параметры
- array|
Cake\Datasource\EntityInterface$object - объект для считывания ошибок
- string|null
$pathoptional null - имя поля для ошибок.
Возвращает
arrayaccessible()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()Параметры
- string|array
$property - единственное или список свойств для изменения доступности
- boolean|null
$setoptional null true отмечает свойство как доступное, false - как защищённое.
Возвращает
$this|bool
clean()source public
clean( )
Устанавливает всю сущность как чистую, что означает, что она будет выглядеть так, как будто ни одно свойство не было изменено или добавлено. Это полезный вызов для начальной гидратации объекта.
dirty()source public deprecated
dirty( string|null $property = null , null|boolean $isDirty = null )
Устанавливает состояние "изменён" для одного свойства. Если вызвано без второго аргумента, вернёт, было ли свойство изменено после создания объекта.
Если вызвано без аргументов, вернёт, есть ли изменённые свойства в сущности.
Устаревший
3.4.0 Используйте EntityTrait::setDirty() и EntityTrait::isDirty()Параметры
- string|null
$propertyoptional null - поле для установки или проверки состояния
- null|boolean
$isDirtyoptional null true означает, что свойство было изменено, false - что не было, а null заставит функцию вернуть текущее состояние для этого свойства
Возвращает
booleanБыло ли свойство изменено
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->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( )
Возвращает псевдоним репозитория, из которого был получен этот объект.
Возвращает
stringhas()source public
has( string|array $property )
Возвращает true, если объект содержит свойство $property с не null значением.
Пример:
$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 - Свойство или свойства для проверки.
Возвращает
booleanhasValue()source public
hasValue( string $property )
Проверяет, имеет ли свойство значение.
Этот метод вернет true для
- Непустых строк
- Непустых массивов
- Любого объекта
- Целых чисел, даже
0 - Чисел с плавающей точкой, даже 0.0
и false во всех остальных случаях.
Параметры
- string
$property - Свойство для проверки.
Возвращает
booleanhiddenProperties()source public deprecated
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 deprecated
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Является ли свойство изменённым
isEmpty()source public
isEmpty( string $property )
Проверяет, является ли свойство пустым.
Это работает не так, как функция PHP empty(). Метод вернёт true для:
-
''(пустая строка) null[]
и false во всех остальных случаях.
Параметры
- string
$property - Свойство для проверки.
Возвращает
booleanisNew()source public
isNew( boolean|null $new = null )
Возвращает, сохранена ли эта сущность. Этот метод может вернуть null в случае отсутствия информации о статусе этой сущности.
Если вызван с boolean, он установит известный статус этого экземпляра: 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 = true )
Устанавливает статус грязности отдельного свойства.
Параметры
- string
$property - поле для установки или проверки статуса
- boolean
$isDirtyнеобязательно true true означает, что свойство было изменено, false — что не было изменено. По умолчанию true.
Возвращает
$this
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']); Параметры
- 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->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
visibleProperties( )
Получение списка видимых свойств.
Список видимых свойств — это все стандартные свойства плюс виртуальные свойства минус скрытые свойства.
Возвращает
массивСписок свойств, которые «видимы» во всех представлениях.
Магические методы, унаследованные от Cake\Datasource\EntityInterface
extractOriginal(), extractOriginalChanged(), getError(), getErrors(), getHidden(), getSource(), getVirtual(), 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.6/class-Cake.ORM.Entity.html