CakePHP
  • 文档
    • 书籍
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识和商标
  • 商业解决方案
  • 商品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与
    • 问题(Github)
    • 烘焙坊
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 时事通讯
    • 领英
    • YouTube
    • 脸书
    • 推特
    • Mastodon
    • 帮助和支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 雪纺 API

  • 项目
    • CakePHP
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 5.1
      • 5.1
      • 5.0
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

命名空间

  • 全局
  • Cake
    • 缓存
    • 集合
    • 命令
    • 控制台
    • 控制器
    • 核心
    • 数据库
    • 数据源
    • 错误
    • 事件
    • 表单
    • Http
    • I18n
    • 日志
    • 邮件
    • 网络
    • ORM
    • 路由
    • 测试套件
    • 实用程序
    • 验证
    • 视图

类 表单

表单抽象用于创建不绑定到 ORM 支持的模型或其他持久数据存储的表单。非常适合在 API 服务或联系表单之上实现表单。

构建表单

此类在子类化时最为有用。在子类中,您应该定义 _buildSchema、validationDefault 和可选的 _execute 方法。这些允许您分别声明表单的字段、验证和主要操作。

表单通常放在 App\Form 命名空间中。

命名空间: Cake\Form

常量

  • 字符串
    BUILD_VALIDATOR_EVENT ¶
    'Form.buildValidator'

    验证器构建时分派的事件名称。

  • 字符串
    DEFAULT_VALIDATOR ¶
    'default'

    默认验证集的名称。

  • 字符串
    VALIDATOR_PROVIDER_NAME ¶
    'form'

    此对象分配给验证器的别名。

属性摘要

  • $_data protected
    数组

    表单的数据。

  • $_errors protected
    数组

    如果有的话,错误

  • $_eventClass protected
    字符串

    新事件对象的默认类名。

  • $_eventManager protected
    Cake\Event\EventManagerInterface|null

    此对象用来分派内部事件的 Cake\Event\EventManager 实例。

  • $_schema protected
    Cake\Form\Schema|null

    此表单使用的模式。

  • $_schemaClass protected
    字符串

    模式类。

  • $_validatorClass protected
    字符串

    验证器类。

  • $_validators protected
    arrayCake\Validation\Validator>

    按名称索引的验证对象列表

方法摘要

  • __construct() public

    构造函数

  • __debugInfo() public

    获取 Form 实例的可打印版本。

  • _buildSchema() protected

    旨在由子类实现的挂钩方法。

  • _execute() protected

    要在子类中实现的挂钩方法。

  • createValidator() protected

    使用类中的自定义方法创建验证器。

  • dispatchEvent() public

    创建和分派事件的包装器。

  • execute() public

    如果表单有效,则执行表单。

  • getData() public

    获取字段数据。

  • getError() public

    返回给定字段的验证错误

  • getErrors() public

    获取表单中的错误

  • getEventManager() public

    返回此对象的 Cake\Event\EventManager 管理器实例。

  • getSchema() public

    获取此表单的模式。

  • getValidator() public

    返回标记为 $name 的验证规则。可以有多个不同的命名验证集,这在您需要在系统中从不同例程保存时使用不同的规则时很有用。

  • hasValidator() public

    检查是否设置了验证器。

  • implementedEvents() public

    获取此表单感兴趣的 Form 回调。

  • set() public

    保存变量或关联变量数组以供表单数据内部使用。

  • setData() public

    设置表单数据。

  • setErrors() public

    设置表单中的错误。

  • setEventManager() public

    返回此对象的 Cake\Event\EventManagerInterface 实例。

  • setSchema() public

    设置此表单的模式。

  • setValidator() public

    此方法在给定名称下存储自定义验证器。

  • validate() public

    用于检查 $data 是否通过此表单的验证。

  • validationDefault() public

    返回默认验证器对象。子类可以覆盖此函数以向验证器对象添加默认验证集。

  • validationMethodExists() protected

    检查验证方法是否存在。

方法详情

__construct() ¶ public

__construct(Cake\Event\EventManager|null $eventManager = null)

构造函数

参数
Cake\Event\EventManager|null $eventManager optional

事件管理器。默认为新实例。

__debugInfo() ¶ public

__debugInfo(): array<string, mixed>

获取 Form 实例的可打印版本。

返回
array<string, mixed>

_buildSchema() ¶ protected

_buildSchema(Cake\Form\Schema $schema): Cake\Form\Schema

旨在由子类实现的挂钩方法。

您可以使用此方法使用 {@link \Cake\Form\Schema} 上的方法定义模式,或从具体类加载预定义的模式。

参数
Cake\Form\Schema $schema

要自定义的模式。

返回
Cake\Form\Schema

_execute() ¶ protected

_execute(array $data): bool

要在子类中实现的挂钩方法。

由 execute() 用于执行表单的操作。

参数
array $data

表单数据。

返回
bool

createValidator() ¶ protected

createValidator(string $name): Cake\Validation\Validator

使用类中的自定义方法创建验证器。

此方法仅用于构建新的验证器,它不会将其存储在您的对象中。如果您想构建和重用验证器,请改用 getValidator() 方法。

参数
string $name

要创建的验证集的名称。

返回
Cake\Validation\Validator
抛出
InvalidArgumentException

dispatchEvent() ¶ public

dispatchEvent(string $name, array $data = [], TSubject|null $subject = null): Cake\Event\EventInterface<TSubject>

创建和分派事件的包装器。

返回分派的事件。

参数
string $name

事件的名称。

array $data optional

您希望随此事件一起传输的任何值都可以由监听器读取。

TSubject|null $subject optional

此事件适用的对象(默认为 $this)。

返回
Cake\Event\EventInterface<TSubject>

execute() ¶ public

execute(array $data, array<string, mixed> $options = []): bool

如果表单有效,则执行表单。

首先验证表单,然后调用 _execute() 挂钩方法。此挂钩方法可以在子类中实现以执行表单的操作。这可能是发送电子邮件、与远程 API 交互,或您可能需要的任何其他操作。

选项

  • validate: 设置为 false 以禁用验证。也可以是字符串形式的要应用的验证规则集。默认为 true/'default'。
参数
array $data

表单数据。

array<string, mixed> $options optional

选项列表。

返回
bool

getData() ¶ public

getData(string|null $field = null): mixed

获取字段数据。

参数
string|null $field 可选

字段名称或 null,获取包含所有字段的数据数组。

返回
混合类型

getError() ¶ public

getError(string $field): array

返回给定字段的验证错误

参数
string $field

获取错误的字段名称。

返回
数组

getErrors() ¶ public

getErrors(): array

获取表单中的错误

返回上次调用 validate() 或 execute() 时的错误。

返回
数组

getEventManager() ¶ public

getEventManager(): Cake\Event\EventManagerInterface

返回此对象的 Cake\Event\EventManager 管理器实例。

您可以使用此实例为对象事件注册任何新的侦听器或回调,或者创建您自己的事件并随意触发它们。

返回
Cake\Event\EventManagerInterface

getSchema() ¶ public

getSchema(): Cake\Form\Schema

获取此表单的模式。

此方法将在首次构建模式时调用 _buildSchema()。此挂钩方法允许您配置模式或加载预定义的模式。

返回
Cake\Form\Schema

getValidator() ¶ public

getValidator(string|null $name = null): Cake\Validation\Validator

返回标记为 $name 的验证规则。可以有多个不同的命名验证集,这在您需要在系统中从不同例程保存时使用不同的规则时很有用。

如果之前没有设置验证器,此方法将使用您类中的方法构建一个验证器。

例如,如果您希望创建一个名为“forSubscription”的验证集,您需要在 Table 子类中创建如下方法

public function validationForSubscription($validator)
{
    return $validator
        ->add('email', 'valid-email', ['rule' => 'email'])
        ->add('password', 'valid', ['rule' => 'notBlank'])
        ->requirePresence('username');
}

$validator = $this->getValidator('forSubscription');

如果您希望有一个在没有指定其他集合的情况下适用的验证集,可以在 Table 子类中实现 validationDefault 方法。

如果没有提供 $name 参数,则将返回默认验证器。您可以在 DEFAULT_VALIDATOR 类常量中配置默认验证器名称。

参数
string|null $name 可选

要返回的验证集的名称。

返回
Cake\Validation\Validator

hasValidator() ¶ public

hasValidator(string $name): bool

检查是否设置了验证器。

参数
string $name

验证器的名称。

返回
bool

implementedEvents() ¶ public

implementedEvents(): array<string, mixed>

获取此表单感兴趣的 Form 回调。

约定方法映射为

  • Form.buildValidator => buildValidator
返回
array<string, mixed>

set() ¶ public

set(array|string $name, mixed $value = null): $this

保存变量或关联变量数组以供表单数据内部使用。

参数
array|string $name

要写入的键,可以是点表示法值。或者可以是一个包含键和值的数组。

mixed $value 可选

要为 var 设置的值

返回
$this

setData() ¶ public

setData(array $data): $this

设置表单数据。

参数
array $data

数据数组。

返回
$this

setErrors() ¶ public

setErrors(array $errors): $this

设置表单中的错误。

$errors = [
     'field_name' => ['rule_name' => 'message']
];

$form->setErrors($errors);
参数
array $errors

错误列表。

返回
$this

setEventManager() ¶ public

setEventManager(Cake\Event\EventManagerInterface $eventManager): $this

返回此对象的 Cake\Event\EventManagerInterface 实例。

您可以使用此实例为对象事件注册任何新的侦听器或回调,或者创建您自己的事件并随意触发它们。

参数
Cake\Event\EventManagerInterface $eventManager

要设置的 eventManager

返回
$this

setSchema() ¶ public

setSchema(Cake\Form\Schema $schema): $this

设置此表单的模式。

参数
Cake\Form\Schema $schema

要设置的模式

返回
$this

setValidator() ¶ public

setValidator(string $name, Cake\Validation\Validator $validator): $this

此方法在给定名称下存储自定义验证器。

您可以自己构建对象并将其存储在您的对象中

$validator = new \Cake\Validation\Validator();
$validator
    ->add('email', 'valid-email', ['rule' => 'email'])
    ->add('password', 'valid', ['rule' => 'notBlank'])
    ->allowEmpty('bio');
$this->setValidator('forSubscription', $validator);
参数
string $name

要设置的验证器的名称。

Cake\Validation\Validator $validator

要设置的验证器对象。

返回
$this

validate() ¶ public

validate(array $data, string|null $validator = null): bool

用于检查 $data 是否通过此表单的验证。

参数
array $data

要检查的数据。

string|null $validator 可选

验证器名称。

返回
bool
抛出
RuntimeException
如果验证器无效。

validationDefault() ¶ public

validationDefault(Cake\Validation\Validator $validator): Cake\Validation\Validator

返回默认验证器对象。子类可以覆盖此函数以向验证器对象添加默认验证集。

参数
Cake\Validation\Validator $validator

可以修改的验证器,以便向其中添加一些规则。

返回
Cake\Validation\Validator

validationMethodExists() ¶ protected

validationMethodExists(string $name): bool

检查验证方法是否存在。

参数
string $name

验证方法名称。

返回
bool

属性详细信息

$_data ¶ protected

表单的数据。

类型
数组

$_errors ¶ protected

如果有的话,错误

类型
数组

$_eventClass ¶ protected

新事件对象的默认类名。

类型
字符串

$_eventManager ¶ protected

此对象用来分派内部事件的 Cake\Event\EventManager 实例。

类型
Cake\Event\EventManagerInterface|null

$_schema ¶ protected

此表单使用的模式。

类型
Cake\Form\Schema|null

$_schemaClass ¶ protected

模式类。

类型
字符串

$_validatorClass ¶ protected

验证器类。

类型
字符串

$_validators ¶ protected

按名称索引的验证对象列表

类型
arrayCake\Validation\Validator>
OpenHub
Pingping
Linode
  • 企业解决方案
  • 展示
  • 文档
  • 书籍
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识和商标
  • 社区
  • 参与
  • 问题(Github)
  • 烘焙坊
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 时事通讯
  • 领英
  • YouTube
  • 脸书
  • 推特
  • Mastodon
  • 帮助和支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成