类 ContextFactory
基于提供的数据获取表单上下文实例的工厂。
命名空间: Cake\View\Form
属性摘要
-
$providers protected
array<string, array>
上下文提供者。
方法摘要
-
__construct() public
构造函数。
-
addProvider() public
添加新的上下文类型。
-
createWithDefaults() public static
使用提供者“数组”、“表单”和“ORM”创建工厂实例。
-
get() public
查找与数据匹配的上下文。
方法详情
__construct() ¶ public
__construct(array $providers = [])
构造函数。
参数
-
array
$providers optional 提供者可调用的数组。每个元素应为
['type' => 'a-string', 'callable' => ..]
的形式
addProvider() ¶ public
addProvider(string $type, callable $check): $this
添加新的上下文类型。
表单上下文类型允许 FormHelper 与来自 CakePHP 外部的提供者数据进行交互。例如,如果你想使用 Doctrine 等替代 ORM,你就可以创建并连接一个新的上下文类,以允许 FormHelper 读取 Doctrine 的元数据。
参数
-
string
$type 上下文类型。此键可用于覆盖现有提供者。
-
callable
$check 当表单上下文为正确类型时,返回一个对象的可调用对象。
返回值
$this
createWithDefaults() ¶ public static
createWithDefaults(array $providers = []): static
使用提供者“数组”、“表单”和“ORM”创建工厂实例。
参数
-
array
$providers optional 提供者可调用的数组。每个元素应为
['type' => 'a-string', 'callable' => ..]
的形式
返回值
static
get() ¶ public
get(Cake\Http\ServerRequest $request, array<string, mixed> $data = []): Cake\View\Form\ContextInterface
查找与数据匹配的上下文。
如果无法匹配类型,将返回 NullContext。
参数
-
Cake\Http\ServerRequest
$request 请求实例。
-
array<string, mixed>
$data optional 要获取上下文提供者数据。
返回值
Cake\View\Form\ContextInterface
抛出
Cake\Core\Exception\CakeException
当无法为给定实体生成上下文实例时。