类 FailedJob
FailedJob 实体
属性摘要
-
$_accessible protected
array<string, bool>
此实体中可以安全分配的字段映射,每个字段名称指向一个布尔值,表示其状态。空数组表示没有字段可访问
-
$_accessors protected static
array<string, array<string, array<string, string>>>
保存每个类 getter/setter 的缓存列表
-
$_dirty protected
array<string, bool>
保存此对象最初创建后修改或添加的字段列表。
-
$_errors protected
array<string, mixed>
存储在此对象中的每个字段的错误列表。
-
$_fields protected
array<string, mixed>
保存此实体的所有字段及其值。
-
$_hasBeenVisited protected
bool
在递归遍历获取错误的实体时存储当前访问状态。
-
$_hidden protected
list<string>
此实体的 JSON 或数组表示形式中 不应 包含的字段名称列表。
-
$_invalid protected
array<string, mixed>
验证/修补时无效字段及其数据的列表。
-
$_new protected
bool
指示此实体是否尚未持久化。实体默认假定它们是新的。可以使用 Table::persisted() 根据数据库中的记录设置实体的新标记。
-
$_original protected
array<string, mixed>
保存此实体中已更改的所有字段及其原始值。
-
$_originalFields protected
list<string>
保存实例化时最初设置的所有字段,或在标记为干净后保存的所有字段
-
$_registryAlias protected
string
此实体来自的存储库的别名
-
$_virtual protected
list<string>
应 包含在 JSON 或此实体的数组表示形式中的计算或虚拟字段列表。如果某个字段同时存在于 _hidden 和 _virtual 中,则该字段 不会 出现在实体的数组/JSON 版本中。
-
$class public @property
string
-
$config public @property
string|null
-
$created public @property
Cake\I18n\DateTime|null
-
$data public @property
string
-
$decoded_data public @property
array
-
$exception public @property
string|null
-
$id public @property
int
常用主键的别名。
-
$method public @property
string
-
$priority public @property
string|null
-
$queue public @property
string|null
-
$requireFieldPresence protected
bool
访问属性时是否检查字段的存在。
方法摘要
-
__construct() public
使用数组中的键初始化此实体的内部属性。可以使用以下选项列表
-
__debugInfo() public
返回一个数组,该数组可用于描述此对象的内部状态。
-
__get() public
Magic getter,用于访问已在此实体中设置的字段
-
__isset() public
返回此实体是否包含名为 $field 的字段,且未设置为 null。
-
__set() public
Magic setter,用于添加或编辑此实体中的字段
-
__toString() public
以人类可读的格式返回此对象的字符串表示形式。
-
__unset() public
从此实体中删除字段
-
_accessor() protected static
获取访问器方法名称访问器方法(可用与否)缓存在 $_accessors 中
-
_getDecodedData() protected
-
_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
按名称返回原始字段的值
-
getOriginalFields() public
返回一个包含原始字段的数组。原始字段是实体初始化时的那些字段。
-
getOriginalValues() public
获取实体的所有原始值。
-
getSource() public
返回此实体来自的存储库的别名。
-
getVirtual() public
获取此实体上的虚拟字段。
-
getVisible() public
获取可见字段列表。
-
has() public
返回此实体是否包含名为 $field 的字段。
-
hasErrors() public
返回此实体是否有错误。
-
hasOriginal() public
返回字段是否具有原始值
-
hasValue() public
检查字段是否具有值。
-
isAccessible() public
检查字段是否可访问
-
isDirty() public
检查实体是否已脏或其单个字段是否已脏。
-
isEmpty() public
检查字段是否为空
-
isNew() public
返回此实体是否已持久化。
-
isOriginalField() public
返回字段是否为原始字段
-
jsonSerialize() public
返回将被序列化为 JSON 的字段
-
offsetExists() public
实现 isset($entity);
-
offsetGet() public
实现 $entity[$offset];
-
offsetSet() public
实现 $entity[$offset] = $value;
-
offsetUnset() public
实现 unset($result[$offset]);
-
requireFieldPresence() 公共
访问属性时启用/禁用字段存在检查。
-
set() 公共
设置此实体内的单个字段。
-
setAccess() 公共
存储字段值是否可以在此实体中更改或设置。特殊字段
*
也可以标记为可访问或受保护,这意味着之前指定的任何其他字段将采用其值。例如$entity->setAccess('*', true)
表示默认情况下,任何未指定字段都将可访问。 -
setDirty() 公共
设置单个字段的脏状态。
-
setError() 公共
设置单个字段的错误。
-
setErrors() 公共
设置实体的错误消息。
-
setHidden() 公共
设置隐藏字段。
-
setInvalid() 公共
将字段设置为无效,不可修补到实体中。
-
setInvalidField() 公共
将字段设置为无效,不可修补到实体中。
-
setNew() 公共
设置此实体的状态。
-
setOriginalField() 受保护
将给定字段或字段列表设置为原始。通常不需要手动调用此方法。
-
setSource() 公共
设置源别名。
-
setVirtual() 公共
设置此实体上的虚拟字段。
-
toArray() 公共
返回一个包含已设置为此实体的所有字段的数组。
-
unset() 公共
从此实体中删除字段或字段列表。
方法详情
__construct() ¶ 公共
__construct(array<string, mixed> $properties = [], array<string, mixed> $options = [])
使用数组中的键初始化此实体的内部属性。可以使用以下选项列表
- useSetters:是否使用内部setter设置属性。
- markClean:是否在设置后将所有属性标记为干净。
- markNew:此实例是否尚未持久化。
- guard:是否阻止设置不可访问的属性(默认值:false)。
- source:一个字符串,表示此实体来自的存储库的别名。
示例
$entity = new Entity(['id' => 1, 'name' => 'Andrew'])
参数
-
array<string, mixed>
$properties 可选 要在此实体中设置的属性哈希。
-
array<string, mixed>
$options 可选 创建此实体时要使用的选项列表。
__debugInfo() ¶ 公共
__debugInfo(): array<string, mixed>
返回一个数组,该数组可用于描述此对象的内部状态。
返回值
array<string, mixed>
__get() ¶ 公共
__get(string $field): mixed
Magic getter,用于访问已在此实体中设置的字段
参数
-
string
$field 要访问的字段名称。
返回值
混合
__isset() ¶ 公共
__isset(string $field): bool
返回此实体是否包含名为 $field 的字段,且未设置为 null。
参数
-
string
$field 要检查的字段。
返回值
bool
__set() ¶ 公共
__set(string $field, mixed $value): void
Magic setter,用于添加或编辑此实体中的字段
参数
-
string
$field 要设置的字段名称。
-
mixed
$value 要设置为字段的值。
返回值
void
_accessor() ¶ 受保护 静态
_accessor(string $property, string $type): string
获取访问器方法名称访问器方法(可用与否)缓存在 $_accessors 中
参数
-
string
$property 要从其派生getter名称的字段名称。
-
string
$type 访问器类型('get' 或 'set')。
返回值
string
_getDecodedData() ¶ 受保护
_getDecodedData(): array
返回值
array
另请参阅
_nestedErrors() ¶ 受保护
_nestedErrors(string $field): array
用于获取嵌套实体中错误的辅助方法
参数
-
string
$field 要检查错误的此实体中的字段。
返回值
array
_readError() ¶ 受保护
_readError(Cake\Datasource\EntityInterface|iterable $object, string|null $path = null): array
从一个或多个对象中读取错误。
参数
-
Cake\Datasource\EntityInterface|iterable
$object 要从中读取错误的对象。
-
string|null
$path 可选 错误的字段名称。
返回值
array
_readHasErrors() ¶ 受保护
_readHasErrors(Cake\Datasource\EntityInterface|array $object): bool
读取一个或多个对象是否有错误。
参数
-
Cake\Datasource\EntityInterface|array
$object 要从中读取错误的对象。
返回值
bool
extract() ¶ 公共
extract(list<string> $fields, bool $onlyDirty = false): array<string, mixed>
返回一个包含存储在此实体中的请求字段的数组,按字段名称索引
参数
-
list<string>
$fields 要返回的字段列表。
-
bool
$onlyDirty 可选 仅当字段是脏的时才返回请求的字段。
返回值
array<string, mixed>
extractOriginal() ¶ 公共
extractOriginal(list<string> $fields): array<string, mixed>
返回一个包含存储在此实体中的请求原始字段的数组,按字段名称索引(如果存在)。
与原始值未更改的字段将包含在此方法的返回值中。
参数
-
list<string>
$fields 要返回的字段列表。
返回值
array<string, mixed>
extractOriginalChanged() ¶ 公共
extractOriginalChanged(list<string> $fields): array<string, mixed>
仅返回一个包含存储在此实体中的原始字段的数组,按字段名称索引(如果存在)。
此方法仅返回自实体构建以来已修改的字段。未更改的字段将被省略。
参数
-
list<string>
$fields 要返回的字段列表。
返回值
array<string, mixed>
get() ¶ 公共
get(string $field): mixed
按名称返回字段的值
参数
-
string
$field 要检索的字段名称。
返回值
混合
抛出
InvalidArgumentException
如果传递了空字段名称。
getInvalid() ¶ 公共
getInvalid(): array<string, mixed>
获取无效字段及其数据列表,用于验证/修补时的错误
返回值
array<string, mixed>
getInvalidField() ¶ 公共
getInvalidField(string $field): mixed|null
获取单个无效字段的值。如果未设置,则返回 null。
参数
-
string
$field 字段名称。
返回值
mixed|null
getOriginal() ¶ 公共
getOriginal(string $field, bool $allowFallback = true): mixed
按名称返回原始字段的值
参数
-
string
$field 要检索原始值的字段名称。
-
bool
$allowFallback 可选 是否允许回退到当前字段值(如果不存在原始值)。
返回值
混合
抛出
InvalidArgumentException
如果传递了空字段名称。
getOriginalFields() ¶ 公共
getOriginalFields(): list<string>
返回一个包含原始字段的数组。原始字段是实体初始化时的那些字段。
返回值
list<string>
has() ¶ 公共
has(list<string>|string $field): bool
返回此实体是否包含名为 $field 的字段。
即使对于设置为null
的字段,它也会返回true
。
示例
$entity = new Entity(['id' => 1, 'name' => null]);
$entity->has('id'); // true
$entity->has('name'); // true
$entity->has('last_name'); // false
您可以通过传递数组来检查多个字段。
$entity->has(['name', 'last_name']);
当检查多个字段时,所有字段都必须具有值(即使是null
)才能使方法返回true
。
参数
-
list<string>|string
$field 要检查的字段或字段。
返回值
bool
hasErrors() ¶ 公共
hasErrors(bool $includeNested = true): bool
返回此实体是否有错误。
参数
-
bool
$includeNested 可选 true 将检查嵌套实体是否有错误。
返回值
bool
hasValue() ¶ 公共
hasValue(string $field): bool
检查字段是否具有值。
此方法将对以下内容返回 true:
- 非空字符串
- 非空数组
- 任何对象
- 整数,即使是
0
。 - 浮点数,即使是 0.0。
在所有其他情况下为 false。
参数
-
string
$field 要检查的字段。
返回值
bool
isAccessible() ¶ 公共
isAccessible(string $field): bool
检查字段是否可访问
示例
$entity->isAccessible('id'); // Returns whether it can be set or not
参数
-
string
$field 要检查的字段名称。
返回值
bool
isDirty() ¶ 公共
isDirty(string|null $field = null): bool
检查实体是否已脏或其单个字段是否已脏。
参数
-
string|null
$field 可选 要检查状态的字段。整个实体为 null。
返回值
bool
isEmpty() ¶ 公共
isEmpty(string $field): bool
检查字段是否为空
这不像 PHP empty()
函数那样工作。对于以下内容,该方法将返回 true:
''
(空字符串)null
[]
在所有其他情况下为 false。
参数
-
string
$field 要检查的字段。
返回值
bool
jsonSerialize() ¶ 公共
jsonSerialize(): array<string, mixed>
返回将被序列化为 JSON 的字段
返回值
array<string, mixed>
offsetExists() ¶ 公共
offsetExists(string $offset): bool
实现 isset($entity);
参数
-
string
$offset 要检查的偏移量。
返回值
bool
offsetGet() ¶ 公共
offsetGet(string $offset): mixed
实现 $entity[$offset];
参数
-
string
$offset 要获取的偏移量。
返回值
混合
offsetSet() ¶ 公共
offsetSet(string $offset, mixed $value): void
实现 $entity[$offset] = $value;
参数
-
string
$offset 要设置的偏移量。
-
mixed
$value 要设置的值。
返回值
void
offsetUnset() ¶ 公共
offsetUnset(string $offset): void
实现 unset($result[$offset]);
参数
-
string
$offset 要删除的偏移量。
返回值
void
requireFieldPresence() ¶ 公共
requireFieldPresence(bool $value = true): void
访问属性时启用/禁用字段存在检查。
如果启用,尝试访问不存在的属性时将引发异常。
参数
-
bool
$value 可选 true
表示启用,false
表示禁用。
返回值
void
set() ¶ 公共
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
参数禁用setter
选项来实现这一点。
$entity->set('name', 'Andrew', ['setter' => false]);
$entity->set(['name' => 'Andrew', 'id' => 1], ['setter' => false]);
在接受用户输入时,应谨慎对待批量赋值。默认情况下,实体会在批量赋值字段时保护所有字段。可以使用guard
选项禁用单个设置调用的保护。
$entity->set(['name' => 'Andrew', 'id' => 1], ['guard' => false]);
单独赋值字段时,不需要使用guard选项。
// No need to use the guard option.
$entity->set('name', 'Andrew');
可以使用asOriginal
选项将给定字段设置为原始字段,如果该字段在实体实例化时不存在。
$entity = new Entity(['name' => 'andrew', 'id' => 1]);
$entity->set('phone_number', '555-0134');
print_r($entity->getOriginalFields()) // prints ['name', 'id']
$entity->set('phone_number', '555-0134', ['asOriginal' => true]);
print_r($entity->getOriginalFields()) // prints ['name', 'id', 'phone_number']
参数
-
array<string, mixed>|string
$field 要设置的字段名称或包含其各自值的字段列表。
-
mixed
$value 可选 要设置到字段的值,如果第一个参数也是数组,则为数组,在这种情况下将被视为$options。
-
array<string, mixed>
$options 可选 用于设置字段的选项。允许的选项键为
setter
、guard
和asOriginal
。
返回值
$this
抛出
InvalidArgumentException
setAccess() ¶ public
setAccess(list<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
参数
-
list<string>|string
$field 要更改其访问权限的单个字段或字段列表。
-
bool
$set True 表示该字段可访问,False 表示该字段受保护。
返回值
$this
setDirty() ¶ public
setDirty(string $field, bool $isDirty = true): $this
设置单个字段的脏状态。
参数
-
string
$field 要设置或检查其状态的字段。
-
bool
$isDirty 可选 true 表示该字段已更改,false 表示该字段未更改。默认为 true。
返回值
$this
setError() ¶ 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 的现有错误。
返回值
$this
setErrors() ¶ 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 的现有错误。
返回值
$this
setHidden() ¶ public
setHidden(list<string> $fields, bool $merge = false): $this
设置隐藏字段。
参数
-
list<string>
$fields 要从数组导出中隐藏的字段数组。
-
bool
$merge 可选 将新字段与现有字段合并。默认情况下为 false。
返回值
$this
setInvalid() ¶ public
setInvalid(array<string, mixed> $fields, bool $overwrite = false): $this
将字段设置为无效,不可修补到实体中。
这在需要在修补后获取错误消息的原始值的批量操作中很有用。此值无法修补到实体中,而是简单地复制到 _invalid 属性中,以供调试或将其记录下来。
参数
-
array<string, mixed>
$fields 要设置的值。
-
bool
$overwrite 可选 是否覆盖 $field 的现有值。
返回值
$this
setInvalidField() ¶ public
setInvalidField(string $field, mixed $value): $this
将字段设置为无效,不可修补到实体中。
参数
-
string
$field 要设置的值。
-
mixed
$value 要设置为 $field 的无效值。
返回值
$this
setNew() ¶ public
setNew(bool $new): $this
设置此实体的状态。
使用true
表示实体尚未持久保存到数据库中,false
表示实体已持久保存到数据库中。
参数
-
bool
$new 指示此实体是否已持久保存。
返回值
$this
setOriginalField() ¶ protected
setOriginalField(list<string>|string $field, bool $merge = true): $this
将给定字段或字段列表设置为原始。通常不需要手动调用此方法。
参数
-
list<string>|string
$field 要设置为原始字段的字段名称或字段列表。
-
bool
$merge 可选
返回值
$this
setVirtual() ¶ public
setVirtual(list<string> $fields, bool $merge = false): $this
设置此实体上的虚拟字段。
参数
-
list<string>
$fields 要视为虚拟字段的字段数组。
-
bool
$merge 可选 将新字段与现有字段合并。默认情况下为 false。
返回值
$this
toArray() ¶ public
toArray(): array<string, mixed>
返回一个包含已设置为此实体的所有字段的数组。
此方法将递归地将分配给字段的实体也转换为数组。
返回值
array<string, mixed>
unset() ¶ public
unset(list<string>|string $field): $this
从此实体中删除字段或字段列表。
示例
$entity->unset('name');
$entity->unset(['name', 'last_name']);
参数
-
list<string>|string
$field 要取消设置的字段。
返回值
$this
属性详情
$_accessible ¶ protected
此实体中可以安全分配的字段映射,每个字段名称指向一个布尔值,表示其状态。空数组表示没有字段可访问
特殊字段 '*' 也可以映射,这意味着地图中未定义的任何其他字段都将采用其值。例如,'*' => true
表示地图中未定义的任何字段默认情况下都可访问。
类型
array<string, bool>
$_accessors ¶ protected static
保存每个类 getter/setter 的缓存列表
类型
array<string, array<string, array<string, string>>>
$_hidden ¶ protected
此实体的 JSON 或数组表示形式中 不应 包含的字段名称列表。
类型
list<string>
$_virtual ¶ protected
应 包含在 JSON 或此实体的数组表示形式中的计算或虚拟字段列表。如果某个字段同时存在于 _hidden 和 _virtual 中,则该字段 不会 出现在实体的数组/JSON 版本中。
类型
list<string>