Spec-Zone.ru › CakePHP 3.4

Класс Entity

Сущность представляет собой одну строку результата из репозитория. Она предоставляет методы для получения и сохранения свойств, связанных в этой строке.

Cake\ORM\Entity реализует Cake\Datasource\EntityInterface, Cake\Datasource\InvalidPropertyInterface использует Cake\Datasource\EntityTrait
Пространство имён: Cake\ORM
Расположение: ORM/Entity.php

Унаследованные свойства

  • _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
Свойство для проверки.

Возвращает

boolean

См. также

\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
одно или список свойств для изменения доступности
boolean|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|boolean $isDirty необязательно null

true означает, что свойство было изменено, false — что оно не было изменено, а null заставит функцию вернуть текущее состояние для этого свойства

Возвращает

boolean
Было ли свойство изменено
END_OF_DOCUMENT_MARKER ```

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
Возвращать запрошенное свойство только в том случае, если оно загрязнено

Возвращает

array

extractOriginal()source public

extractOriginal( array $properties )

Возвращает массив с запрошенными исходными свойствами, хранящимися в этом объекте, индексированными по имени свойства.

Свойства, которые не изменились со своего исходного значения, будут включены в результат этого метода.

Параметры

array $properties
Список свойств, которые должны быть возвращены

Возвращает

array

extractOriginalChanged()source public

extractOriginalChanged( array $properties )

Возвращает массив только с исходными свойствами, хранящимися в этом объекте, индексированными по имени свойства.

Этот метод вернет только свойства, которые были изменены с момента создания объекта. Неизмененные свойства будут опущены.

Параметры

array $properties
Список свойств, которые должны быть возвращены

Возвращает

array

get()source public

get( string $property )

Возвращает значение свойства по имени

Параметры

string $property
имя свойства для извлечения

Возвращает

mixed

Исключения

InvalidArgumentException
если передано пустое имя свойства

getDirty()source public

getDirty( )

Возвращает измененные свойства.

Возвращает

array

getError()source public

getError( string $field )

Возвращает сообщения об ошибках валидации для поля

Параметры

string $field
Имя поля, для которого нужно получить ошибки

Возвращает

array

getErrors()source public

getErrors( )

Возвращает все сообщения об ошибках валидации.

Возвращает

array

getHidden()source public

getHidden( )

Возвращает скрытые свойства.

Возвращает

array

getInvalid()source public

getInvalid( )

Получает список недопустимых полей и их данных для ошибок при валидации/патчинге

Возвращает

array

getInvalidField()source public

getInvalidField( string $field )

Получает одно значение недопустимого поля. Возвращает null, если не задано.

Параметры

string $field
Имя поля.

Возвращает

mixed

getOriginal()source public

getOriginal( string $property )

Возвращает значение исходного свойства по имени

Параметры

string $property
имя свойства, для которого требуется получить исходное значение.

Возвращает

mixed

Исключения

InvalidArgumentException
если передано пустое имя свойства.

getOriginalValues()source public

getOriginalValues( )

Получает все исходные значения объекта.

Возвращает

array

getSource()source public

getSource( )

Возвращает псевдоним репозитория, из которого был получен этот объект.

Возвращает

string

getVirtual()source public

getVirtual( )

Возвращает виртуальные свойства этого объекта.

Возвращает

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, чтобы получить результат true.

При проверке нескольких свойств все свойства должны быть не null, чтобы вернуть true.

Параметры

string|array $property
Свойство или свойства для проверки.

Возвращает

boolean

hiddenProperties()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
END_OF_DOCUMENT_MARKER

invalid()source public

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 $property null )

Проверяет, является ли сущность или отдельное свойство грязным.

Параметры

строка $property необязательно null
поле для проверки состояния

Возвращает

логическое
Являлось ли свойство измененным

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]);

Массовое назначение следует рассматривать осторожно при приёме пользовательских данных; по умолчанию сущности будут защищать все поля, когда свойства назначаются массово. Вы можете отключить защиту для одного вызова set с помощью параметра 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

Выбрасывает

InvalidArgumentException

setAccess()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 )

Устанавливает состояние «изменено» для отдельного свойства.

Параметры

строка $property
поле для установки или проверки состояния
логическое $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']);

Параметры

строка $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->errors(['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

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–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.4/class-Cake.ORM.Entity.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API