Класс Сущность
Сущность представляет собой одну строку результата из хранилища. Она предоставляет методы для извлечения и сохранения свойств, связанных в этой строке.
- 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\EntityInterface $object , string|null $path = null )
Считывает ошибку(и) из одного или нескольких объектов.
Параметры
- массив|
Cake\Datasource\EntityInterface$object - Объект для считывания ошибок.
- строка|null
$pathнеобязательно null - Имя поля для ошибок.
Возвращает
массив_readHasErrors()source protected
_readHasErrors( mixed $object )
Проверяет наличие ошибок для одного или нескольких объектов.
Параметры
- смешанное
$object - Объект для проверки ошибок.
Возвращает
логическое значениеaccessible()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()Параметры
- строка|массив
$property - одно или список свойств для изменения доступности
- логическое значение|null
$setнеобязательно null true помечает свойство как доступное, false помечает его как защищённое.
Возвращает
$this|логическое значение
clean()source public
clean( )
Помечает всю сущность как чистую, что означает, что она будет выглядеть так, как будто ни одно свойство не изменялось или не добавлялось. Это полезный вызов для начальной загрузки объекта.
dirty()source public deprecated
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 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->getErrors('salary');
// Returns all error messages indexed by field name
$entity->getErrors();
// Sets the error messages for multiple fields at once
$entity->getErrors(['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( )
Возвращает виртуальные свойства этой сущности.
Возвращает
arraygetVisible()source public
getVisible( )
Возвращает список видимых свойств.
Список видимых свойств - это все стандартные свойства плюс виртуальные свойства минус скрытые свойства.
Возвращает
arrayСписок свойств, которые «видимые» во всех представлениях.
has()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, чтобы получить истинное значение.
При проверке нескольких свойств, все свойства должны быть не равны null, чтобы вернуть true.
Параметры
- string|array
$property - Свойство или свойства для проверки.
Возвращает
booleanhasErrors()source public
hasErrors( boolean $includeNested = true )
Возвращает true, если в этой сущности есть ошибки.
Параметры
- boolean
$includeNestedнеобязательный true - true проверит вложенные сущности на hasErrors()
Возвращает
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|массив
$propertiesнеобязательно null - Массив свойств для скрытия или null для получения свойств
Возвращает
массив|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() вместо этого.Параметры
- строка|массив|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|null $property = null )
Проверяет, является ли сущность измененной или отдельное свойство измененного.
Параметры
- строка|null
$propertyнеобязательно null - Поле для проверки статуса. Null для всей сущности.
Возвращает
логическоеБыло ли свойство изменено или нет
isEmpty()source public
isEmpty( string $property )
Проверяет, пусто ли свойство
Это не работает так же, как функция PHP empty() . Метод вернет true для:
-
''(пустая строка) null[]
и false во всех остальных случаях.
Параметры
- строка
$property - Свойство для проверки.
Возвращает
логическое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 с помощью параметра %%%CODE_BLOCK_121%%:
$entity->set('name', 'Andrew', ['setter' => false]);
$entity->set(['name' => 'Andrew', 'id' => 1], ['setter' => false]); Массовое назначение следует рассматривать осторожно при приеме пользовательского ввода; по умолчанию сущности будут защищать все поля при массовом назначении свойств. Вы можете отключить защиту для одного вызова set с помощью параметра %%%CODE_BLOCK_123%%:
$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 = true )
Устанавливает статус изменения отдельного свойства.
Параметры
- строка
$property - поле для установки или проверки статуса
- логическое
$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']); Параметры
- строка
$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->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 deprecated
visibleProperties( )
Получение списка видимых свойств.
Список видимых свойств включает все стандартные свойства плюс виртуальные свойства минус скрытые свойства.
Устаревшее
3.8.0 Используйте getVisible() вместо этого.Возвращаемое значение
массивСписок свойств, которые «видимы» во всех представлениях.
Магические методы, унаследованные от Cake\Datasource\EntityInterface
extractOriginal(), extractOriginalChanged(), getError(), getErrors(), getHidden(), getSource(), getVirtual(), getVisible(), hasErrors(), 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.8/class-Cake.ORM.Entity.html