Класс Entity
Сущность представляет собой одну строку результата из репозитория. Она предоставляет методы для извлечения и сохранения свойств, связанных в этой строке.
Краткое описание свойств
- $_accessible protected
array<string, bool>Карта полей в этой сущности, которые можно безопасно назначить, каждое имя поля указывает на булево значение, указывающее его состояние. Пустой массив означает, что нет доступных полей.
- $_accessors protected static
array<string, array<string, array<string, string>>>Хранит кэшированный список геттеров/сеттеров на класс.
- $_dirty protected
array<bool>Хранит список полей, которые были изменены или добавлены после того, как этот объект был первоначально создан.
- $_errors protected
array<string, mixed>Список ошибок для каждого поля, как хранится в этом объекте.
- $_fields protected
array<string, mixed>Хранит все поля и их значения для этой сущности.
- $_hidden protected
array<string>Список имён полей, которые не должны включаться в JSON или массивы, представляющие эту сущность.
- $_invalid protected
array<string, mixed>Список недопустимых полей и их данных для ошибок при валидации/патчинге.
- $_new protected
boolУказывает, является ли эта сущность ещё не сохранённой. Сущности по умолчанию предполагают, что они новые. Вы можете использовать Table::persisted(), чтобы установить флаг нового для сущности, основываясь на записях в базе данных.
- $_original protected
array<string, mixed>Хранит все поля, которые были изменены, и их исходные значения для этой сущности.
- $_registryAlias protected
stringПсевдоним репозитория, из которого пришла эта сущность.
- $_virtual protected
array<string>Список вычисляемых или виртуальных полей, которые должны быть включены в JSON или массивы, представляющие эту сущность. Если поле присутствует как в _hidden, так и в _virtual, поле не будет присутствовать в массивах/JSON-представлениях сущности.
- $id public @property
mixedПсевдоним для часто используемого первичного ключа.
Краткое описание методов
-
__construct() public
Инициализирует внутренние свойства этого объекта на основе ключей в массиве. Можно использовать следующие параметры:
-
__debugInfo() public
Возвращает массив, который можно использовать для описания внутреннего состояния этого объекта.
-
__get() public
Магический геттер для доступа к полям, которые были установлены в этом объекте.
-
__isset() public
Возвращает, содержит ли этот объект поле с именем $field и не установлено ли оно в null.
-
__set() public
Магический сеттер для добавления или изменения поля в этом объекте.
-
__toString() public
Возвращает строковое представление этого объекта в удобочитаемом формате.
-
__unset() public
Удаляет поле из этого объекта.
-
_accessor() protected static
Получить имя метода доступа. Методы доступа (доступные или нет) кэшируются в $_accessors
-
_nestedErrors() protected
Вспомогательный метод для получения ошибок во вложенных сущностях.
-
_readError() protected
Считывает ошибку(и) из одного или нескольких объектов.
-
_readHasErrors() protected
Считывает наличие ошибок для одного или нескольких объектов.
-
clean() public
Устанавливает весь объект как чистый, что означает, что он будет отображаться как будто никакие поля не были изменены или добавлены. Этот метод полезен для первоначальной загрузки объекта.
-
extract() public
Возвращает массив с запрошенными полями, хранящимися в этом объекте, индексированными по имени поля.
-
extractOriginal() public
Возвращает массив с запрошенными исходными полями, хранящимися в этом объекте, индексированными по имени поля.
-
extractOriginalChanged() public
Возвращает массив только с исходными полями, хранящимися в этом объекте, индексированными по имени поля.
-
get() public
Возвращает значение поля по имени.
-
getAccessible() public
Возвращает исходную конфигурацию доступа для этого объекта. Подстановка
*относится ко всем полям. -
getDirty() public
Получает изменённые поля.
-
getError() public
Возвращает ошибки валидации для поля.
-
getErrors() public
Возвращает все ошибки валидации.
-
getHidden() public
Получает скрытые поля.
-
getInvalid() public
Получает список невалидных полей и их данных для ошибок при валидации/патчинге.
-
getInvalidField() public
Получает одно значение невалидного поля. Возвращает null, если поле не задано.
-
getOriginal() public
Возвращает значение исходного поля по имени.
-
getOriginalValues() public
Получает все исходные значения объекта.
-
getSource() public
Возвращает псевдоним репозитория, из которого был получен этот объект.
-
getVirtual() public
Получает виртуальные поля этого объекта.
-
getVisible() public
Получает список видимых полей.
-
has() public
Возвращает, содержит ли этот объект поле с именем $field, содержащее не-null значение.
-
hasErrors() public
Возвращает, содержит ли этот объект ошибки.
-
hasValue() public
Проверяет, содержит ли поле значение.
-
isAccessible() public
Проверяет, доступно ли поле.
-
isDirty() public
Проверяет, является ли объект или отдельное поле грязным.
-
isEmpty() public
Проверяет, пусто ли поле.
-
isNew() public
Возвращает, был ли этот объект уже сохранён.
-
jsonSerialize() public
Возвращает поля, которые будут сериализованы как JSON.
-
offsetExists() public
Реализует isset($entity);
-
offsetGet() public
Реализует $entity[$offset];
-
offsetSet() public
Реализует $entity[$offset] = $value;
-
offsetUnset() public
Реализует unset($result[$offset]);
-
set() public
Устанавливает отдельное поле в этом объекте.
-
setAccess() public
Устанавливает возможность изменения или установки значения поля в этом объекте. Специальное поле
*также может быть помечено как доступное или защищённое, что означает, что любое другое указанное поле примет его значение. Например$entity->setAccess('*', true)означает, что любое поле, которое не было указано, будет доступно по умолчанию. -
setDirty() public
Устанавливает состояние изменения для отдельного поля.
-
setError() public
Устанавливает ошибки для отдельного поля.
-
setErrors() public
Устанавливает сообщения об ошибках для объекта.
-
setHidden() public
Устанавливает скрытые поля.
-
setInvalid() public
Помечает поля как невалидные и недопустимые для изменения в объекте.
-
setInvalidField() public
Помечает поле как невалидное и недопустимое для изменения в объекте.
-
setNew() public
Установить состояние этого объекта.
-
setSource() public
Устанавливает псевдоним источника
-
setVirtual() public
Устанавливает виртуальные поля в этом объекте.
-
toArray() public
Возвращает массив со всеми полями, которые были установлены в этом объекте
-
unset() public
Удаляет поле или список полей из этого объекта
-
unsetProperty() public deprecated
Удаляет поле или список полей из этого объекта
Подробное описание методов
__construct() public
__construct(array<string, mixed> $properties = [], array<string, mixed> $options = [])
Инициализирует внутренние свойства этого сущности из ключей в массиве. Можно использовать следующие параметры:
- useSetters: использовать ли внутренние сеттеры для свойств
- markClean: пометить ли все свойства как чистые после их установки
- markNew: указывает ли этот экземпляр на то, что он ещё не был сохранён
- guard: предотвращать ли установку недоступных свойств (по умолчанию: false)
- source: строка, представляющая псевдоним репозитория, из которого пришла эта сущность
Пример:
$entity = new Entity(['id' => 1, 'name' => 'Andrew'])
Параметры
-
array<string, mixed>$properties optional хеш свойств для установки в этой сущности
-
array<string, mixed>$options optional список параметров для использования при создании этой сущности
__debugInfo() public
__debugInfo(): array<string, mixed>
Возвращает массив, который может быть использован для описания внутреннего состояния этого объекта.
Возвращает
array<string, mixed>__get() public
__get(string $field): mixed
Магический геттер для доступа к полям, которые были установлены в этой сущности
Параметры
-
string$field Имя поля для доступа
Возвращает
mixed__isset() public
__isset(string $field): bool
Возвращает, содержит ли эта сущность поле с именем $field и не установлено ли оно в null.
Параметры
-
string$field Проверяемое поле.
Возвращает
boolСм. также
__set() public
__set(string $field, mixed $value): void
Магический сеттер для добавления или редактирования поля в этой сущности
Параметры
-
string$field Имя поля для установки
-
mixed$value Значение для установки в поле
Возвращает
void__toString() public
__toString(): string
Возвращает строковое представление этого объекта в удобочитаемом формате.
Возвращает
string__unset() public
__unset(string $field): void
Удаляет поле из этой сущности
Параметры
-
string$field Поле для удаления
Возвращает
void_accessor() protected static
_accessor(string $property, string $type): string
Получение имени метода доступа. Методы доступа (доступны или нет) кэшируются в $_accessors
Параметры
-
string$property Имя поля для получения имени метода геттера
-
string$type Тип доступа ('get' или 'set')
Возвращает
string_nestedErrors() protected
_nestedErrors(string $field): array
Вспомогательный метод для получения ошибок во вложенных сущностях
Параметры
-
string$field Поле в этой сущности для проверки на наличие ошибок
Возвращает
array_readError() protected
_readError(Cake\Datasource\EntityInterface|iterable $object, string|null $path = null): array
Чтение ошибки(ошибок) из одного или нескольких объектов.
Параметры
-
Cake\Datasource\EntityInterface|iterable$object Объект для чтения ошибок.
-
string|null$path optional Имя поля для ошибок.
Возвращает
array_readHasErrors() protected
_readHasErrors(Cake\Datasource\EntityInterface|array $object): bool
Проверка на наличие ошибок для одного или нескольких объектов.
Параметры
-
Cake\Datasource\EntityInterface|array$object Объект для проверки на наличие ошибок.
Возвращает
boolclean() public
clean(): void
Помечает всю сущность как чистую, что означает, что все поля будут отображаться как не изменённые. Полезно при начальной загрузке объекта.
Возвращает
voidextract() public
extract(array<string> $fields, bool $onlyDirty = false): array
Возвращает массив с запрошенными полями, хранящимися в этой сущности, индексированными по имени поля.
Параметры
-
array<string>$fields список полей для возврата
-
bool$onlyDirty optional Возвращать запрошенное поле только если оно изменено
Возвращает
arrayextractOriginal() public
extractOriginal(array<string> $fields): array
Возвращает массив с исходными запрошенными полями, хранящимися в этой сущности, индексированными по имени поля.
Поля, которые не изменены с момента их первоначального значения, будут включены в результат этого метода.
Параметры
-
array<string>$fields Список полей для возврата
Возвращает
arrayextractOriginalChanged() public
extractOriginalChanged(array<string> $fields): array
Возвращает массив только с исходными полями, хранящимися в этой сущности, индексированными по имени поля.
Этот метод возвращает только поля, которые были изменены с момента создания сущности. Неизменённые поля будут исключены.
Параметры
-
array<string>$fields Список полей для возврата
Возвращает
arrayget() public
get(string $field): mixed
Возвращает значение поля по имени.
Параметры
-
string$field имя поля для извлечения
Возвращает
mixedВыбрасывает
InvalidArgumentExceptionесли передано пустое имя поля
getAccessible() public
getAccessible(): array<bool>
Возвращает необработанную конфигурацию доступа к этой сущности. * wildcard относится ко всем полям.
Возвращает
array<bool>getDirty() public
getDirty(): array<string>
Получает изменённые поля.
Возвращает
array<string>getError() public
getError(string $field): array
Возвращает ошибки валидации поля.
Параметры
-
string$field Имя поля для получения ошибок
Возвращает
arraygetErrors() public
getErrors(): array
Возвращает все ошибки валидации.
Возвращает
arraygetHidden() public
getHidden(): array<string>
Получает скрытые поля.
Возвращает
array<string>getInvalid() public
getInvalid(): array<string, mixed>
Получает список недопустимых полей и их данных для ошибок при валидации/патчинге.
Возвращает
array<string, mixed>getInvalidField() public
getInvalidField(string $field): mixed|null
Получить единственное значение недопустимого поля. Возвращает null, если не задано.
Параметры
-
string$field Имя поля.
Возвращает
mixed|nullgetOriginal() public
getOriginal(string $field): mixed
Возвращает значение исходного поля по имени.
Параметры
-
string$field имя поля, для которого извлекается исходное значение.
Возвращает
mixedИсключения
InvalidArgumentExceptionесли передано пустое имя поля.
getOriginalValues() public
getOriginalValues(): array
Получает все исходные значения сущности.
Возвращает
arraygetSource() public
getSource(): string
Возвращает псевдоним репозитория, из которого была получена эта сущность.
Возвращает
stringgetVirtual() public
getVirtual(): array<string>
Получает виртуальные поля в этой сущности.
Возвращает
array<string>getVisible() public
getVisible(): array<string>
Получает список видимых полей.
Список видимых полей — это все стандартные поля плюс виртуальные поля минус скрытые поля.
Возвращает
array<string>has() public
has(array<string>|string $field): bool
Возвращает, содержит ли эта сущность поле с именем $field, которое содержит значение, отличное от 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, чтобы получить истинное значение.
При проверке нескольких полей все поля не должны быть null, чтобы вернуть true.
Параметры
-
array<string>|string$field Поле или поля для проверки.
Возвращает
boolhasErrors() public
hasErrors(bool $includeNested = true): bool
Возвращает, есть ли у этой сущности ошибки.
Параметры
-
bool$includeNested optional true проверит вложенные сущности на наличие ошибок
Возвращает
boolhasValue() public
hasValue(string $field): bool
Проверяет, содержит ли поле значение.
Этот метод вернёт true для
- Непустых строк
- Непустых массивов
- Любого объекта
- Целого числа, даже
0 - Вещественного числа, даже 0.0
и false во всех других случаях.
Параметры
-
string$field Поле для проверки.
Возвращает
boolisAccessible() public
isAccessible(string $field): bool
Проверяет, доступно ли поле.
Пример:
$entity->isAccessible('id'); // Returns whether it can be set or not Параметры
-
string$field Имя поля для проверки
Возвращает
boolisDirty() public
isDirty(string|null $field = null): bool
Проверяет, является ли сущность грязной или грязным ли является отдельное поле.
Параметры
-
string|null$field optional Поле для проверки состояния. Null для всей сущности.
Возвращает
boolisEmpty() public
isEmpty(string $field): bool
Проверяет, пусто ли поле.
Этот метод работает не так, как функция PHP empty() . Метод вернёт true для:
-
''(пустая строка) null[]
и false во всех остальных случаях.
Параметры
-
string$field Поле для проверки.
Возвращает
boolisNew() public
isNew(): bool
Возвращает, была ли эта сущность уже сохранена.
Возвращает
booljsonSerialize() public
jsonSerialize(): array
Возвращает поля, которые будут сериализованы как JSON.
Возвращает
arrayoffsetExists() public
offsetExists(string $offset): bool
Реализует isset($entity);
Параметры
-
string$offset Смещение для проверки.
Возвращает
booloffsetGet() public
offsetGet(string $offset): mixed
Реализует $entity[$offset];
Параметры
-
string$offset Смещение для получения.
Возвращает
mixedoffsetSet() public
offsetSet(string $offset, mixed $value): void
Реализует $entity[$offset] = $value;
Параметры
-
string$offset Смещение для установки.
-
mixed$value Значение для установки.
Возвращает
voidoffsetUnset() public
offsetUnset(string $offset): void
Реализует unset($result[$offset]);
Параметры
-
string$offset Смещение для удаления.
Возвращает
voidset() public
set(array<string, mixed>|string $field, mixed $value = null, array<string, mixed> $options = []): $this
Устанавливает отдельное поле внутри этой сущности.
Пример:
$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' => false]);
Вам не нужно использовать опцию защиты при назначении полей индивидуально:
// No need to use the guard option.
$entity->set('name', 'Andrew'); Параметры
-
array<string, mixed>|string$field имя поля для установки или список полей с соответствующими значениями
-
mixed$value optional Значение для установки в поле или массив, если первый аргумент также является массивом, в этом случае он будет рассматриваться как $options
-
array<string, mixed>$options optional Параметры, используемые для установки поля. Допустимые ключи параметров —
setterиguard
Возвращает
$thisИсключения
InvalidArgumentExceptionsetAccess() public
setAccess(array<string>|string $field, bool $set): $this
Хранит информацию о том, можно ли изменить или установить значение поля в этом объекте. Специальное поле * также может быть помечено как доступное или защищённое, что означает, что любое другое указанное ранее поле примет его значение. Например, $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 fields as accessible
$entity->setAccess('*', false); // Mark all fields as protected Параметры
-
array<string>|string$field Одно или несколько полей для изменения доступности
-
bool$set True помечает поле как доступное, false — как защищённое.
Возвращаемое значение
$thissetDirty() public
setDirty(string $field, bool $isDirty = true): $this
Устанавливает статус изменения для отдельного поля.
Параметры
-
string$field поле для установки или проверки статуса
-
bool$isDirty необязательно true означает, что поле было изменено, false — что не было изменено. По умолчанию true.
Возвращаемое значение
$thissetError() public
setError(string $field, array|string $errors, bool $overwrite = false): $this
Устанавливает ошибки для отдельного поля
Пример
// Sets the error messages for a single field
$entity->setError('salary', ['must be numeric', 'must be a positive number']); Параметры
-
string$field Поле для получения ошибок или массив ошибок для установки.
-
array|string$errors Ошибки, которые нужно установить для $field
-
bool$overwrite необязательно Заменять ли существующие ошибки для $field
Возвращаемое значение
$thissetErrors() public
setErrors(array $errors, bool $overwrite = false): $this
Устанавливает сообщения об ошибках для объекта
Пример
// Sets the error messages for multiple fields at once $entity->setErrors(['salary' => ['message'], 'name' => ['another message']]);
Параметры
-
array$errors Массив ошибок для установки.
-
bool$overwrite необязательно Заменять ли существующие ошибки для $fields
Возвращаемое значение
$thissetHidden() public
setHidden(array<string> $fields, bool $merge = false): $this
Устанавливает скрытые поля.
Параметры
-
array<string>$fields Массив полей, которые нужно скрыть из экспорта массива.
-
bool$merge необязательно Объединить новые поля со существующими. По умолчанию false.
Возвращаемое значение
$thissetInvalid() public
setInvalid(array<string, mixed> $fields, bool $overwrite = false): $this
Помечает поля как невалидные и неподлежащие обновлению в объекте.
Это полезно для пакетных операций, когда необходимо получить исходное значение для сообщения об ошибке после обновления. Это значение не может быть обновлено в объект и просто копируется в свойство _invalid для целей отладки или для возможности его протоколирования.
Параметры
-
array<string, mixed>$fields Значения для установки.
-
bool$overwrite необязательно Заменять ли существующие значения для $field.
Возвращаемое значение
$thissetInvalidField() public
setInvalidField(string $field, mixed $value): $this
Помечает поле как невалидное и неподлежащее обновлению в объекте.
Параметры
-
string$field Значение для установки.
-
mixed$value Невалидное значение, которое нужно установить для $field.
Возвращаемое значение
$thissetNew() public
setNew(bool $new): $this
Устанавливает статус этого объекта.
Использование true означает, что объект не был сохранён в базе данных, false что он уже есть.
Параметры
-
bool$new Указывает, был ли этот объект сохранён.
Возвращаемое значение
$thissetSource() public
setSource(string $alias): $this
Устанавливает псевдоним источника
Параметры
-
string$alias псевдоним репозитория
Возвращаемое значение
$thissetVirtual() public
setVirtual(array<string> $fields, bool $merge = false): $this
Устанавливает виртуальные поля в этом объекте.
Параметры
-
array<string>$fields Массив полей, которые нужно рассматривать как виртуальные.
-
bool$merge необязательно Объединить новые поля со существующими. По умолчанию false.
Возвращаемое значение
$thistoArray() public
toArray(): array
Возвращает массив со всеми полями, которые были установлены для этого объекта
Этот метод будет рекурсивно преобразовывать объекты, назначенные полям, в массивы также.
Возвращаемое значение
arrayunset() public
unset(array<string>|string $field): $this
Удаляет поле или список полей из этого объекта
Примеры:
$entity->unset('name');
$entity->unset(['name', 'last_name']); Параметры
-
array<string>|string$field Поле для удаления.
Возвращаемое значение
$thisunsetProperty() public
unsetProperty(array<string>|string $field): $this
Удаляет поле или список полей из этого объекта
Параметры
-
array<string>|string$field Поле для удаления.
Возвращаемое значение
$thisПодробное описание свойств
$_accessible protected
Словарь полей в этом объекте, доступных для безопасного присвоения; имя каждого поля сопоставлено с булевым значением, определяющим его статус. Пустой массив означает, что поля недоступны.
Также может быть указано специальное поле «*», означающее, что любое другое поле, не определённое в словаре, будет доступно по умолчанию. Например, '*' => true означает, что любое поле, не определённое в словаре, будет доступно по умолчанию.
Тип
array<string, bool>$_accessors protected static
Содержит кэшированный список геттеров/сеттеров по классам.
Тип
array<string, array<string, array<string, string>>>$_dirty protected
Содержит список полей, которые были изменены или добавлены после первоначального создания объекта.
Тип
array<bool>$_errors protected
Список ошибок по полям, хранящихся в данном объекте.
Тип
array<string, mixed>$_fields protected
Содержит все поля и их значения для данного объекта.
Тип
array<string, mixed>$_hidden protected
Список имён полей, которые не должны включаться в JSON или массивы, представляющие этот объект.
Тип
array<string>$_invalid protected
Список недопустимых полей и их данных для ошибок при валидации/обновлении.
Тип
array<string, mixed>$_new protected
Указывает, является ли этот объект ещё не сохранённым. Объекты по умолчанию предполагаются новыми. Вы можете использовать Table::persisted() для установки флага «новый» для объекта на основе записей в базе данных.
Тип
bool$_original protected
Содержит все изменённые поля и их исходные значения для этого объекта.
Тип
array<string, mixed>$_registryAlias protected
Псевдоним репозитория, из которого был получен этот объект.
Тип
string$_virtual protected
Список вычисленных или виртуальных полей, которые должны быть включены в JSON или массивы, представляющие этот объект. Если поле присутствует как в _hidden, так и в _virtual, оно не будет включено в массив/JSON представления объекта.
Тип
array<string>$id public @property
Псевдоним для часто используемого первичного ключа.
Тип
mixed
© 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/4.4/class-Cake.ORM.Entity.html