Класс Entity
Сущность представляет собой одну строку результата из репозитория. Она предоставляет методы для извлечения и сохранения свойств, связанных с этой строкой.
- Cake\ORM\Entity реализует Cake\Datasource\EntityInterface использует Cake\Datasource\EntityTrait
Подробное описание методов
__constructsource public
__construct( array $properties [] , array $options [] )
Инициализирует внутренние свойства этой сущности из ключей в массиве. Можно использовать следующие параметры:
- useSetters: использовать внутренние сеттеры для свойств или нет
- markClean: пометить все свойства как чистые после их установки
- markNew: указывает, что экземпляр ещё не сохранён
- guard: предотвращать установку недоступных свойств (по умолчанию: false)
- source: Строка, представляющая псевдоним репозитория, из которого пришла эта сущность
Пример:
$entity = new Entity(['id' => 1, 'name' => 'Andrew'])
Параметры
- массив
$propertiesнеобязательно [] - хеш свойств для установки в этой сущности
- массив
$optionsнеобязательно [] - список параметров для создания этой сущности
Методы, используемые из Cake\Datasource\EntityTrait
__debugInfosource public
__debugInfo( )
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
Возвращает
arrayмассив
__getsource public
__get( string $property )
Магический геттер для доступа к свойствам, которые были установлены в этой сущности
Параметры
- строка
$property - Имя свойства для доступа
Возвращает
mixedсмешанный тип
__issetsource public
__isset( string $property )
Возвращает, содержит ли эта сущность свойство с именем $property, независимо от того, пусто оно или нет.
Параметры
- строка
$property - Свойство для проверки.
Возвращает
booleanбулево
См. также
Cake\ORM\Entity::has()__setsource public
__set( string $property , mixed $value )
Магический сеттер для добавления или изменения свойства в этой сущности
Параметры
- строка
$property - Имя свойства для установки
- смешанный тип
$value - Значение для установки в свойство
__toStringsource public
__toString( )
Возвращает строковое представление этого объекта в удобочитаемом формате.
Возвращает
stringстрока
__unsetsource public
__unset( string $property )
Удаляет свойство из этой сущности
Параметры
- строка
$property - Свойство для удаления
_methodExistssource protected
_methodExists( string $method )
Определяет, существует ли метод в этом классе
Параметры
- строка
$method - метод для проверки существования
Возвращает
booleantrue, если метод существует
_nestedErrorssource protected
_nestedErrors( string $field )
Вспомогательный метод для получения ошибок во вложенных сущностях
Параметры
- строка
$field - поле в этой сущности для проверки ошибок
Возвращает
arrayошибки во вложенной сущности, если таковые имеются
_readErrorsource protected
_readError( array|Cake\Datasource\EntityTrait $object , string $path null )
Чтение ошибки(ок) из одного или нескольких объектов.
Параметры
- массив|
Cake\Datasource\EntityTrait$object - Объект для чтения ошибок.
- строка
$pathнеобязательно null - Имя поля для ошибок.
Возвращает
arrayмассив
accessiblesource public
accessible( string|array $property , boolean $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 - одно или список свойств для изменения доступности
- булево
$setнеобязательно null - true помечает свойство как доступное, false — как защищённое.
Возвращает
mixed$this|булево
Реализация
Cake\Datasource\EntityInterface::accessible() cleansource public
clean( )
Помечает всю сущность как чистую, что означает, что она будет выглядеть как будто ни одно свойство не было изменено или добавлено. Это полезный вызов для начальной гидратации объекта.
Реализация
Cake\Datasource\EntityInterface::clean() dirtysource public
dirty( string $property null , null|boolean $isDirty null )
Устанавливает состояние «изменённое» для одного свойства. Если вызывается без второго аргумента, она вернёт, было ли свойство изменено после создания объекта.
Если вызывается без аргументов, вернёт, есть ли в сущности изменённые свойства.
Параметры
- строка
$propertyнеобязательно null - поле для установки или проверки статуса
- null|булево
$isDirtyнеобязательно null - true означает, что свойство было изменено, false — что нет, а null заставит функцию вернуть текущее состояние для этого свойства
Возвращает
booleanБыло ли свойство изменено
Реализация
Cake\Datasource\EntityInterface::dirty() errorssource 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
Возвращает
array|$this$this
Реализация
Cake\Datasource\EntityInterface::errors() extractsource public
extract( array $properties , boolean $onlyDirty false )
Возвращает массив с запрошенными свойствами, хранящимися в этом объекте, индексированными по имени свойства
Параметры
- массив
$properties - список свойств, которые должны быть возвращены
- логическое значение
$onlyDirtyнеобязательно false - Возвращает запрошенное свойство только если оно модифицировано
Возвращает
arrayмассив
Реализация
Cake\Datasource\EntityInterface::extract() extractOriginalsource public
extractOriginal( array $properties )
Возвращает массив с запрошенными исходными свойствами, хранящимися в этом объекте, индексированными по имени свойства.
Свойства, которые не были изменены со своего исходного значения, будут включены в результат этого метода.
Параметры
- массив
$properties - Список свойств, которые должны быть возвращены
Возвращает
arrayмассив
extractOriginalChangedsource public
extractOriginalChanged( array $properties )
Возвращает массив только с исходными свойствами, хранящимися в этом объекте, индексированными по имени свойства.
Этот метод вернёт только свойства, которые были изменены с момента создания объекта. Неизменённые свойства будут пропущены.
Параметры
- массив
$properties - Список свойств, которые должны быть возвращены
Возвращает
arrayмассив
getsource public
get( string $property )
Возвращает значение свойства по имени
Параметры
- строка
$property - имя свойства для извлечения
Возвращает
mixedсмешанный тип
Выбрасывает
InvalidArgumentExceptionесли передано пустое имя свойства
Реализация
Cake\Datasource\EntityInterface::get() getOriginalsource public
getOriginal( string $property )
Возвращает значение исходного свойства по имени
Параметры
- строка
$property - имя свойства, для которого необходимо получить исходное значение.
Возвращает
mixedсмешанный тип
Выбрасывает
InvalidArgumentExceptionесли передано пустое имя свойства.
hassource 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
При проверке нескольких свойств. Все свойства не должны быть null для возврата true.
Параметры
- строка или массив
$property - Свойство или свойства для проверки.
Возвращает
booleanбулево значение
Реализация
Cake\Datasource\EntityInterface::has() hiddenPropertiessource public
hiddenProperties( null|array $properties null )
Получить/Установить скрытые свойства в этом объекте.
Если аргумент properties равен null, то будут возвращены текущие скрытые свойства. В противном случае скрытые свойства будут установлены.
Параметры
- null|массив
$propertiesнеобязательно null - Массив свойств для скрытия или null для получения свойств
Возвращает
array|$this$this
Реализация
Cake\Datasource\EntityInterface::hiddenProperties() isNewsource public
isNew( boolean|null $new null )
Возвращает true, если объект ещё не сохранён в базе данных. Метод может вернуть null, если нет информации о статусе объекта.
Если вызван с boolean, то устанавливает известный статус экземпляра: true — экземпляр ещё не сохранён в базе данных, false — уже сохранён.
Параметры
- boolean|null
$newнеобязательно null - true, если известно, что экземпляр был сохранён
Возвращает
booleanБыло ли сохранён entity.
Реализация
Cake\Datasource\EntityInterface::isNew() jsonSerializesource public
jsonSerialize( )
Возвращает свойства, которые будут сериализованы как JSON
Возвращает
arrayмассив
offsetExistssource public
offsetExists( mixed $offset )
Реализует isset($entity);
Параметры
- смешанный тип
$offset - Смещение для проверки.
Возвращает
booleanУспех
offsetGetsource public
offsetGet( mixed $offset )
Реализует $entity[$offset];
Параметры
- смешанный тип
$offset - Смещение для получения.
Возвращает
mixedсмешанный тип
offsetSetsource public
offsetSet( mixed $offset , mixed $value )
Реализует $entity[$offset] = $value;
Параметры
- смешанный тип
$offset - Смещение для установки.
- смешанный тип
$value - Значение для установки.
offsetUnsetsource public
offsetUnset( mixed $offset )
Реализует unset($result[$offset);
Параметры
- смешанный тип
$offset - Смещение для удаления.
setsource 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_104%%:
$entity->set('name', 'Andrew', ['setter' => false]); $entity->set(['name' => 'Andrew', 'id' => 1], ['setter' => false]);
Массовое присваивание следует обрабатывать с осторожностью при приёме пользовательского ввода. По умолчанию объекты будут проверять все поля при присваивании свойств оптом. Можно отключить проверку для одного вызова set с помощью опции %%%CODE_BLOCK_106%%:
$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
Возвращает
mixed$this
Выбрасывает
InvalidArgumentException\InvalidArgumentException
Реализация
Cake\Datasource\EntityInterface::set() sourcesource public
source( string $alias null )
Возвращает псевдоним репозитория, откуда этот объект был получен.
Если вызывается без аргументов, возвращает псевдоним репозитория, откуда этот объект был получен, если он известен.
Параметры
- строка
$aliasнеобязательно null - псевдоним репозитория
Возвращает
string|$this$this
toArraysource public
toArray( )
Возвращает массив со всеми свойствами, которые были установлены в этом объекте
Этот метод рекурсивно преобразует объекты, присвоенные свойствам, в массивы также.
Возвращает
arrayмассив
Реализация
Cake\Datasource\EntityInterface::toArray() unsetPropertysource public
unsetProperty( string|array $property )
Удаляет свойство или список свойств из этого объекта.
Примеры:
$entity->unsetProperty('name'); $entity->unsetProperty(['name', 'last_name']);
Параметры
- строка|массив
$property - Свойство для удаления.
Возвращает
mixed$this
Реализация
Cake\Datasource\EntityInterface::unsetProperty() virtualPropertiessource public
virtualProperties( null|array $properties null )
Получение/установка виртуальных свойств объекта.
Если параметр properties равен null, возвращаются текущие виртуальные свойства. В противном случае виртуальные свойства устанавливаются.
Параметры
- null|массив
$propertiesнеобязательно null - Массив свойств, которые следует обрабатывать как виртуальные, или null для получения свойств
Возвращает
array|$this$this
Реализация
Cake\Datasource\EntityInterface::virtualProperties() visiblePropertiessource public
visibleProperties( )
Получение списка видимых свойств.
Список видимых свойств включает все стандартные свойства, плюс виртуальные, минус скрытые свойства.
Возвращает
arrayСписок свойств, которые являются 'видимыми' во всех представлениях.
Реализация
Cake\Datasource\EntityInterface::visibleProperties() Свойства, используемые из Cake\Datasource\EntityTrait
$_accessiblesource
protected массив
Массив свойств этого объекта, которые можно безопасно назначить; каждое имя свойства сопоставлено с булевым значением, указывающим его статус. Пустой массив означает, что нет доступных свойств.
Специальное свойство '*' также может быть отображено, что означает, что любое другое свойство, не определенное в массиве, будет принимать свое значение. Например, '*' => true означает, что любое свойство, не определенное в массиве, будет по умолчанию доступным.
['*' => true]
$_accessorssource
protected static массив
Хранит кэшированный список методов, которые существуют в классе экземпляра.
[]
$_dirtysource
protected массив
Хранит список свойств, которые были изменены или добавлены после того, как этот объект был первоначально создан.
[]
$_hiddensource
protected массив
Список имён свойств, которые не должны включаться в JSON или массивы, представляющие этот объект.
[]
$_newsource
protected булево
Указывает, является ли этот объект ещё не сохранённым. Объекты по умолчанию предполагают, что они новые. Вы можете использовать Table::persisted(), чтобы установить флаг new на объекте, основываясь на записях в базе данных.
true $_originalsource
protected массив
Хранит все свойства, которые были изменены, и их исходные значения для этого объекта.
[]
$_virtualsource
protected массив
Список вычисленных или виртуальных полей, которые должны быть включены в JSON или массивы, представляющие этот объект. Если поле присутствует как в `_hidden`, так и в `_virtual`, оно не будет в массивах/JSON-представлениях объекта.
[]
© 2005–2016 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.
http://api.cakephp.org/3.1/class-Cake.ORM.Entity.html