Spec-Zone.ru › CakePHP 3.6

Класс 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'])

Параметры

array $properties optional []
Хэш свойств для установки в этой сущности
array $options optional []
Список параметров для создания этой сущности

Методы, используемые из 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 $path optional null
имя поля для ошибок.

Возвращает

array

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

Параметры

string|array $property
единственное или список свойств для изменения доступности
boolean|null $set optional 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 $property optional null
поле для установки или проверки состояния
null|boolean $isDirty optional null

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

Возвращает

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

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

Возвращает

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

Возвращает

boolean

hasValue()source public

hasValue( string $property )

Проверяет, имеет ли свойство значение.

Этот метод вернет true для

  • Непустых строк
  • Непустых массивов
  • Любого объекта
  • Целых чисел, даже 0
  • Чисел с плавающей точкой, даже 0.0

и false во всех остальных случаях.

Параметры

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

Возвращает

boolean

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

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
Имя свойства для проверки

Возвращает

boolean

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

Возвращает

boolean

isNew()source public

isNew( boolean|null $new = null )

Возвращает, сохранена ли эта сущность. Этот метод может вернуть null в случае отсутствия информации о статусе этой сущности.

Если вызван с boolean, он установит известный статус этого экземпляра: true означает, что экземпляр ещё не сохранён в базе данных, false — что уже сохранён.

Параметры

boolean|null $new необязательно null
true, если известно, что этот экземпляр ещё не сохранён

Возвращает

boolean
Сохранена ли сущность

jsonSerialize()source public

jsonSerialize( )

Возвращает свойства, которые будут сериализованы как JSON

Возвращает

array

offsetExists()source public

offsetExists( mixed $offset )

Реализует isset($entity);

Параметры

mixed $offset
Смещение для проверки.

Возвращает

boolean
Успешно

offsetGet()source public

offsetGet( mixed $offset )

Реализует $entity[$offset];

Параметры

mixed $offset
Смещение для получения.

Возвращает

mixed

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

Исключение

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

Параметры

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
END_OF_DOCUMENT_MARKER

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

Spec-Zone.ru

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