Класс 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 Параметры
- строка|массив
$property - единичное или список свойств для изменения доступности
- булево значение|null
$setнеобязательный null true отмечает свойство как доступное, false — как защищенное.
Возвращает
$this|bool
clean()source public
clean( )
Отмечает всю сущность как чистую, что означает, что все свойства будут отображаться как неизмененные. Это полезный вызов для первоначальной гидратации объекта.
dirty()source public
dirty( string|null $property null , null|boolean $isDirty null )
Установка или получение состояния «изменён» для одного свойства. Если вызвано без второго аргумента, возвращает, было ли свойство изменено после создания объекта.
Если вызвано без аргументов, вернет, есть ли в сущности изменённые свойства.
Параметры
- строка|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']); При использовании в качестве установщика этот метод вернёт экземпляр этой сущности для цепочки методов.
Параметры
- строка|массив|null
$fieldнеобязательно null - Поле, для которого нужно получить ошибки, или массив ошибок для установки.
- строка|массив|null
$errorsнеобязательно null - Ошибки, которые нужно установить для $field
- булево
$overwriteнеобязательно false - Записывать ли существующие ошибки для $field или перезаписывать их.
Возвращает
массив|Cake\Datasource\EntityTrait$this
extract()source public
extract( array $properties , boolean $onlyDirty false )
Возвращает массив с запрошенными свойствами, сохранёнными в этой сущности, индексированными по имени свойства.
Параметры
- массив
$properties - список свойств, которые нужно вернуть
- булево
$onlyDirtyнеобязательно false - Возвращать запрошенное свойство только если оно изменено
Возвращает
массивextractOriginal()source public
extractOriginal( array $properties )
Возвращает массив с запрошенными исходными свойствами, сохранёнными в этой сущности, индексированными по имени свойства.
Свойства, которые не изменились со своего исходного значения, будут включены в возвращаемое значение этого метода.
Параметры
- массив
$properties - Список свойств, которые нужно вернуть
Возвращает
массивextractOriginalChanged()source public
extractOriginalChanged( array $properties )
Возвращает массив только с исходными свойствами, сохранёнными в этой сущности, индексированными по имени свойства.
Этот метод вернёт только свойства, которые были изменены с момента создания объекта сущности. Неизменённые свойства будут опущены.
Параметры
- массив
$properties - Список свойств, которые нужно вернуть
Возвращает
массивget()source public
get( string $property )
Возвращает значение свойства по имени.
Параметры
- строка
$property - имя свойства для извлечения
Возвращает
смешанноеИсключения
InvalidArgumentExceptionесли передано пустое имя свойства
getOriginal()source public
getOriginal( string $property )
Возвращает значение исходного свойства по имени.
Параметры
- строка
$property - имя свойства, для которого извлекается исходное значение.
Возвращает
смешанноеИсключения
InvalidArgumentExceptionесли передано пустое имя свойства.
getOriginalValues()source public
getOriginalValues( )
Получает все исходные значения сущности.
Возвращает
массивhas()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.
Параметры
- строка|массив
$property - Свойство или свойства для проверки.
Возвращает
булевоhiddenProperties()source public
hiddenProperties( null|array $properties null )
Получение/Установка скрытых свойств этого объекта сущности.
Если аргумент properties равен null, возвращаются текущие скрытые свойства. В противном случае скрытые свойства устанавливаются.
Параметры
- null|массив
$propertiesнеобязательно null - Массив скрываемых свойств или null для получения свойств
Возвращает
массив|Cake\Datasource\EntityTrait$this
invalid()source public
invalid( string|array|null $field null , mixed|null $value null , boolean $overwrite false )
Устанавливает поле как невалидное и не подлежащее исправлению в сущности.
Это полезно для пакетных операций, когда нужно получить исходное значение для сообщения об ошибке после исправления. Это значение не может быть исправлено в сущности и просто копируется в свойство _invalid для отладки или ведения журнала.
Параметры
- строка|массив|null
$fieldнеобязательно null - Поле, для которого нужно получить значение невалидности, или значение для установки.
- смешанное|null
$valueнеобязательно null - Невалидное значение, которое нужно установить для $field.
- булево
$overwriteнеобязательно false - Записывать ли существующие значения для $field или перезаписывать их.
Возвращает
$this|смешанное
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]); Массовое присвоение следует рассматривать с осторожностью при приёме пользовательского ввода. По умолчанию объекты будут защищать все поля при массовом присвоении свойств. Вы можете отключить защиту для одного вызова установки с помощью параметра 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
Выбрасывает
InvalidArgumentExceptionsource()source public
source( string|null $alias null )
Возвращает псевдоним репозитория, из которого был получен этот объект.
Если вызывается без аргументов, возвращает псевдоним репозитория, из которого был получен этот объект, если он известен.
Параметры
- строка|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, будут возвращены текущие виртуальные свойства. В противном случае виртуальные свойства будут установлены.
Параметры
- null|массив
$propertiesнеобязательно null - Массив свойств для обработки как виртуальных или null, чтобы получить свойства
Возвращает
массив|Cake\Datasource\EntityTrait$this
visibleProperties()source public
visibleProperties( )
Получить список видимых свойств.
Список видимых свойств включает все стандартные свойства плюс виртуальные свойства минус скрытые свойства.
Возвращает
массивСписок свойств, которые «видимые» во всех представлениях.
© 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.3/class-Cake.ORM.Entity.html