Class yii\widgets\ActiveField

继承yii\widgets\ActiveField » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/widgets/ActiveField.php

ActiveField 表示 yii\widgets\ActiveForm 中的表单输入字段.

有关 ActiveField 的更多详细信息和使用信息, 请参阅 权威指南 - 接收用户数据 - 创建表单(Creating Forms).

公共属性

隐藏继承的属性

属性类型描述定义在
$addAriaAttributes boolean 为输入添加 aria HTML 属性aria-requiredaria-invalid. yii\widgets\ActiveField
$attribute string 该字段与之关联的模型属性. yii\widgets\ActiveField
$behaviors yii\base\Behavior[] 附加到此组件的行为列表. 该属性是只读的. yii\base\Component
$enableAjaxValidation boolean 是否启用基于 AJAX 的数据验证. yii\widgets\ActiveField
$enableClientValidation boolean 是否启用客户端数据验证. yii\widgets\ActiveField
$errorOptions array 错误标记的默认选项. yii\widgets\ActiveField
$form yii\widgets\ActiveForm 该字段与之关联的表单. yii\widgets\ActiveField
$hintOptions array 提示标签的默认选项. yii\widgets\ActiveField
$inputOptions array 输入标签的默认选项. yii\widgets\ActiveField
$labelOptions array Label 标签的默认选项. yii\widgets\ActiveField
$model yii\base\Model 该字段与之关联的数据模型. yii\widgets\ActiveField
$options array 字段容器标签的 HTML 属性(name-value 对). yii\widgets\ActiveField
$parts array 字段的不同部分(eg. yii\widgets\ActiveField
$selectors array 用于选择容器, 输入和错误标签的 jQuery 选择器. yii\widgets\ActiveField
$template string 用于排列标签、输入字段、错误消息和提示文本的模板. yii\widgets\ActiveField
$validateOnBlur boolean 是否在输入字段失去焦点时执行验证. yii\widgets\ActiveField
$validateOnChange boolean 是否在输入字段的值更改时执行验证. yii\widgets\ActiveField
$validateOnType boolean 是否在用户输入字段输入时执行验证. yii\widgets\ActiveField
$validationDelay integer 当用户键入字段和 $validateOnType 设置为true时, 验证应延迟的毫秒数. yii\widgets\ActiveField

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的指定的方法. yii\base\Component
__clone() 在通过克隆现有对象创建对象之后调用此方法. yii\base\Component
__construct() 构造函数. yii\base\BaseObject
__get() 返回组件属性的值. yii\base\Component
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\Component
__set() 设置组件属性的值. yii\base\Component
__toString() PHP 魔术方法, 返回此对象的字符串表示形式. yii\widgets\ActiveField
__unset() 将组件属性设置为null. yii\base\Component
attachBehavior() 将行为附加到此组件. yii\base\Component
attachBehaviors() 将行为列表附加到组件. yii\base\Component
begin() 渲染字段容器的开始标签. yii\widgets\ActiveField
behaviors() 返回此组件应该具有的行为列表. yii\base\Component
canGetProperty() 返回一个值, 指示属性是否可读取. yii\base\Component
canSetProperty() 返回一个值, 指示属性是否可设置. yii\base\Component
checkbox() 渲染复选框input type="checkbox". yii\widgets\ActiveField
checkboxList() 渲染复选框列表input type="checkbox". yii\widgets\ActiveField
className() 返回此类的完全限定名称. yii\base\BaseObject
detachBehavior() 从组件中分离一个行为. yii\base\Component
detachBehaviors() 分离组件中的所有行为. yii\base\Component
end() 渲染字段容器的结束标签. yii\widgets\ActiveField
ensureBehaviors() 确保在 behaviors() 中声明的行为已附加到此组件. yii\base\Component
error() 生成一个包含 $attribute 的第一个验证错误的标签. yii\widgets\ActiveField
fileInput() 渲染文件上传域input type="file". yii\widgets\ActiveField
getBehavior() 返回指定的行为对象. yii\base\Component
getBehaviors() 返回附加到此组件的所有行为. yii\base\Component
hasEventHandlers() 返回一个值, 指示是否有任何处理程序附加到指定的事件. yii\base\Component
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\Component
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\Component
hiddenInput() 渲染隐藏输入域input type="hidden". yii\widgets\ActiveField
hint() 渲染提示(hint)标签. yii\widgets\ActiveField
init() 初始化对象. yii\base\BaseObject
input() 渲染输入标签input. yii\widgets\ActiveField
label() $attribute 生成 label 标签. yii\widgets\ActiveField
listBox() 渲染列表框select size="num". yii\widgets\ActiveField
off() 从该组件分离现有的事件处理程序. yii\base\Component
on() 将事件处理程序附加到事件. yii\base\Component
passwordInput() 渲染密码输入域input type="password". yii\widgets\ActiveField
radio() 渲染单选按钮input type="radio". yii\widgets\ActiveField
radioList() 渲染单选按钮列表input type="radio". yii\widgets\ActiveField
render() 渲染整个输入字段. yii\widgets\ActiveField
textInput() 渲染文本输入域input type="text". yii\widgets\ActiveField
textarea() 渲染多行文本输入域textarea. yii\widgets\ActiveField
trigger() 触发事件. yii\base\Component
widget() 渲染一个小部件作为该字段的输入. yii\widgets\ActiveField

受保护的方法

隐藏继承的方法

方法描述定义在
addAriaAttributes() 将 aria 属性添加到输入选项. yii\widgets\ActiveField
addErrorClassIfNeeded() 如果需要, 将验证类添加到输入选项. yii\widgets\ActiveField
addRoleAttributes() 将角色属性添加到输入选项. yii\widgets\ActiveField
adjustLabelFor() 根据输入选项设置标签的for属性. yii\widgets\ActiveField
getClientOptions() 返回该字段的 JS 选项. yii\widgets\ActiveField
getInputId() 返回此表单字段输入元素的 HTML id属性. yii\widgets\ActiveField
isAjaxValidationEnabled() 检查是否为该字段启用了 ajax 验证. yii\widgets\ActiveField
isClientValidationEnabled() 检查是否为该字段启用了客户端验证. yii\widgets\ActiveField

属性详情

$addAriaAttributes public 属性 (可用自版本: 2.0.11)

为输入添加 aria HTML 属性aria-requiredaria-invalid.

$attribute public 属性

该字段与之关联的模型属性.

public string $attribute null
$enableAjaxValidation public 属性

是否启用基于 AJAX 的数据验证.

如果未设置, 则将使用 yii\widgets\ActiveForm::$enableAjaxValidation 的值.

$enableClientValidation public 属性

是否启用客户端数据验证.

如果未设置, 则将使用 yii\widgets\ActiveForm::$enableClientValidation 的值.

$errorOptions public 属性

错误标记的默认选项.

传递给 error() 的参数将在渲染错误标记时与此属性合并.

可以识别以下特殊选项:

  • tag: 容器元素的标签名称. 默认为div. 将其设置为false将不会渲染容器标签. 参阅 yii\helpers\Html::tag().
  • encode: 是否对错误输出进行编码. 默认为true.

如果你为容器元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

参见 yii\helpers\Html::renderTagAttributes() 有关如何渲染属性的详细信息.

public array $errorOptions = ['class' => 'help-block']
$form public 属性

该字段与之关联的表单.

$hintOptions public 属性

提示标签的默认选项.

传递给 hint() 的参数将在渲染提示标签时与此属性合并.

可以识别以下特殊选项:

  • tag: 容器元素的标签名称. 默认为div. 将其设置为false将不会渲染容器标签. 参阅 yii\helpers\Html::tag().

参见 yii\helpers\Html::renderTagAttributes() 有关如何渲染属性的详细信息.

public array $hintOptions = ['class' => 'hint-block']
$inputOptions public 属性

输入标签的默认选项.

渲染输入标签时, 传递给各个输入方法的参数(eg. [[textInpu···t()]])将与此属性合并.

如果你为输入元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

参见 yii\helpers\Html::renderTagAttributes() 有关如何渲染属性的详细信息.

public array $inputOptions = ['class' => 'form-control']
$labelOptions public 属性

Label 标签的默认选项.

传递给 label() 的参数将在渲染 label 标签时与此属性合并.

参见 yii\helpers\Html::renderTagAttributes() 有关如何渲染属性的详细信息.

public array $labelOptions = ['class' => 'control-label']
$model public 属性

该字段与之关联的数据模型.

public yii\base\Model $model null
$options public 属性

字段容器标签的 HTML 属性(name-value 对).

这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码.

如果值为null, 则不会渲染相应的属性.

可以识别以下特殊选项:

  • tag: 容器元素的标签名称. 默认为div. 将其设置为false将不会渲染容器标签. 参阅 yii\helpers\Html::tag().

如果你为容器元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

参见 yii\helpers\Html::renderTagAttributes() 有关如何渲染属性的详细信息.

public array $options = ['class' => 'form-group']
$parts public 属性

字段的不同部分(eg. input, label).

这将与 $template 一起用于生成最终的字段 HTML 代码.

键是 $template 中的标记名称, 而值是相应的 HTML 代码. 有效的标记包括{input}, {label}{error}.

Note: 你通常不需要直接访问此属性, 因为它由该类的各种方法维护的.

public array $parts = []
$selectors public 属性

用于选择容器, 输入和错误标签的 jQuery 选择器.

数组键应该是container, input, 和/或 error, 数组值是相应的选择器. 例如, ['input' => '#my-input'].

容器选择器在表单的上下文中使用, 而输入和错误选择器在容器的上下文中使用.

你通常不需要设置此属性, 因为默认选择器在大多数情况下都可以正常工作.

public array $selectors = []
$template public 属性

用于排列标签、输入字段、错误消息和提示文本的模板.

render() 被调用时, 以下标记将被替换: {label}, {input}, {error}{hint}.

public string $template "{label}\n{input}\n{hint}\n{error}"
$validateOnBlur public 属性

是否在输入字段失去焦点时执行验证.

如果未设置, 则将使用 yii\widgets\ActiveForm::$validateOnBlur 的值.

public boolean $validateOnBlur null
$validateOnChange public 属性

是否在输入字段的值更改时执行验证.

如果未设置, 则将使用 yii\widgets\ActiveForm::$validateOnChange 的值.

public boolean $validateOnChange null
$validateOnType public 属性

是否在用户输入字段输入时执行验证.

如果未设置, 则将使用 yii\widgets\ActiveForm::$validateOnType 的值.

参见 $validationDelay.

public boolean $validateOnType null
$validationDelay public 属性

当用户键入字段和 $validateOnType 设置为true时, 验证应延迟的毫秒数.

如果未设置, 则将使用 yii\widgets\ActiveForm::$validationDelay 的值.

public integer $validationDelay null

方法详情

__toString() public 方法

PHP 魔术方法, 返回此对象的字符串表示形式.

public string __toString ( )
return string

该对象的字符串表示形式.

addAriaAttributes() protected 方法 (可用自版本: 2.0.11)

将 aria 属性添加到输入选项.

protected void addAriaAttributes ( &$options )
$options

Array 输入选项.

addErrorClassIfNeeded() protected 方法 (可用自版本: 2.0.14)

如果需要, 将验证类添加到输入选项.

protected void addErrorClassIfNeeded ( &$options )
$options

Array 输入选项.

addRoleAttributes() protected 方法 (可用自版本: 2.0.16)

将角色属性添加到输入选项.

protected void addRoleAttributes ( &$options, $role )
$options

Array 输入选项.

$role string
adjustLabelFor() protected 方法

根据输入选项设置标签的for属性.

protected void adjustLabelFor ( $options )
$options array

输入选项.

begin() public 方法

渲染字段容器的开始标签.

public string begin ( )
return string

渲染结果.

checkbox() public 方法

渲染复选框input type="checkbox".

该方法将根据模型属性值生成标签的checked属性.

public $this checkbox ( $options = [], $enclosedByLabel true )
$options array

标签选项的 name-value 值. 以下选项被特别处理:

  • uncheck: string, 与复选框的未选中状态相关联的值. 如果未设置, 则将使用默认值0. 此方法会渲染一个隐藏的输入, 如果复选框未被选中并被提交, 则此属性的值仍然会通过隐藏的输入提交给服务器. 如果你不想要任何隐藏的输入, 你应该显示的将这个选项设置为null.
  • label: string, 复选框旁边显示的文本. 它不会被 HTML 编码. 因此, 你可以传递HTML代码, 如图像标签. 如果这是来自最终用户, 你应该 encode 来防止 XSS 攻击. 当指定此选项时, 该复选框将被一个 label 标签括起来. 如果你不希望使用任何标签, 则应将此选项设置为null.
  • labelOptions: array, label 标签的 HTML 属性. 这仅在指定了label选项时使用.

其余选项将被渲染为结果标签的属性. 这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码. 如果值为null, 则不会渲染相应的属性.

如果你为输入元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

$enclosedByLabel boolean

是否将复选框包含在 label 标签内. 如果为true, 该方法仍将使用 $template 来布局复选框和错误消息, 只是该复选框被 label 标签括起来.

return $this

字段对象本身.

checkboxList() public 方法

渲染复选框列表input type="checkbox".

复选框列表允许选择多个, 如 listBox(). 因此, 相应的提交值是一个数组. 复选框列表的选择取自模型属性的值.

public $this checkboxList ( $items, $options = [] )
$items array

用于生成复选框的数据项. 数组值是标签, 数组键是相应的复选框值.

$options array

复选框列表的选项(name => config). 有关可用选项的列表, 请参阅 yii\helpers\Html::activeCheckboxList()$options参数.

return $this

字段对象本身.

渲染下拉列表select.

下拉列表的选择取自模型属性的值.

public $this dropDownList ( $items, $options = [] )
$items array

选项数据项. 数组键是选项值, 数组值是相应的选项标签. 该数组也可以嵌套(即某些数组值也是数组). 对于每个子数组, 将生成一个选项组, 其标签是与子数组关联的键. 如果你有一个数据模型列表, 则可以使用 yii\helpers\ArrayHelper::map() 将其转换为上述格式.

Note: 值和 label 标签将通过此方法自动进行 HTML 编码, 并且标签中的空格也将进行 HTML 编码.

$options array

标签选项的 name-value 值. 有关可用选项的列表, 请参阅 yii\helpers\Html::activeDropDownList()$options参数.

如果你为输入元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

return $this

字段对象本身.

end() public 方法

渲染字段容器的结束标签.

public string end ( )
return string

渲染结果.

error() public 方法

生成一个包含 $attribute 的第一个验证错误的标签.

Note: 即使没有验证错误, 该方法仍会返回一个空的错误标签.

参见 $errorOptions.

public $this error ( $options = [] )
$options array|false

标签选项的 name-value 值. 它将与 $errorOptions 合并. 这些选项将被渲染为结果标签的属性. 这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码. 如果此参数为false, 则不会显示错误标签.

以下选项被特别处理:

如果为错误元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

return $this

字段对象本身.

fileInput() public 方法

渲染文件上传域input type="file".

除非在$options中明确指定, 否则该方法将自动为模型属性生成namevalue标签属性.

public $this fileInput ( $options = [] )
$options array

标签选项的 name-value 值. 这些将被渲染为结果标签的属性. 这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码.

如果你为输入元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

return $this

字段对象本身.

getClientOptions() protected 方法

返回该字段的 JS 选项.

protected array getClientOptions ( )
return array

JS 选项.

getInputId() protected 方法 (可用自版本: 2.0.7)

返回此表单字段输入元素的 HTML id属性.

protected string getInputId ( )
return string

输入域 ID.

hiddenInput() public 方法

渲染隐藏输入域input type="hidden".

Note: 该方法是为了完整性而提供的. 在大多数情况下, 由于你不需要验证隐藏的输入, 因此你不需要使用该方法. 相反, 你应该使用 yii\helpers\Html::activeHiddenInput().

除非在$options中明确指定, 否则该方法将自动为模型属性生成namevalue标签属性.

public $this hiddenInput ( $options = [] )
$options array

标签选项的 name-value 值. 这些将被渲染为结果标签的属性. 这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码.

如果你为输入元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

return $this

字段对象本身.

hint() public 方法

渲染提示(hint)标签.

public $this hint ( $content, $options = [] )
$content string|boolean

提示(hint)的内容. 如果为null, 则提示(hint)将通过 yii\base\Model::getAttributeHint() 生成. 如果为false, 则生成的字段将不包含提示(hint)部分.

Note: 这不会 HTML 编码.

$options array

标签选项的 name-value 值. 这些将被渲染为提示标签的属性. 这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码.

以下选项被特别处理:

return $this

字段对象本身.

input() public 方法

渲染输入标签input.

public $this input ( $type, $options = [] )
$type string

输入类型(eg. text, password).

$options array

标签选项的 name-value 值. 这些将被渲染为结果标签的属性. 这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码.

如果你为输入元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

return $this

字段对象本身.

isAjaxValidationEnabled() protected 方法 (可用自版本: 2.0.11)

检查是否为该字段启用了 ajax 验证.

protected boolean isAjaxValidationEnabled ( )
isClientValidationEnabled() protected 方法 (可用自版本: 2.0.11)

检查是否为该字段启用了客户端验证.

protected boolean isClientValidationEnabled ( )
label() public 方法

$attribute 生成 label 标签.

public $this label ( $label null, $options = [] )
$label null|string|false

要使用的标签. 如果为null, 则标签将通过 yii\base\Model::getAttributeLabel() 生成. 如果为false, 则生成的字段将不包含 label 部分.

Note: 这不会 HTML 编码.

$options null|array

标签选项的 name-value 值. 它将与 $labelOptions 合并. 这些选项将被渲染为结果标签的属性. 这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码. 如果值为null, 则不会渲染相应的属性.

return $this

字段对象本身.

listBox() public 方法

渲染列表框select size="num".

列表框的选择取自模型属性的值.

public $this listBox ( $items, $options = [] )
$items array

选项数据项. 数组键是选项值, 数组值是相应的选项标签. 该数组也可以嵌套(即某些数组值也是数组). 对于每个子数组, 将生成一个选项组, 其标签是与子数组关联的键. 如果你有一个数据模型列表, 则可以使用 yii\helpers\ArrayHelper::map() 将其转换为上述格式.

Note: 值和 label 标签将通过此方法自动进行 HTML 编码, 并且标签中的空格也将进行 HTML 编码.

$options array

标签选项的 name-value 值.

有关可用选项的列表, 请参阅 yii\helpers\Html::activeListBox()$options参数.

如果你容器元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

return $this

字段对象本身.

passwordInput() public 方法

渲染密码输入域input type="password".

除非在$options中明确指定, 否则该方法将自动为模型属性生成namevalue标签属性.

public $this passwordInput ( $options = [] )
$options array

标签选项的 name-value 值. 这些将被渲染为结果标签的属性. 这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码.

如果你为输入元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

return $this

字段对象本身.

radio() public 方法

渲染单选按钮input type="radio".

此方法将根据模型属性值生成标签的checked属性.

public $this radio ( $options = [], $enclosedByLabel true )
$options array

标签选项的 name-value 值. 以下选项被特别处理:

  • uncheck: string, 与单选按钮的未选中状态相关联的值. 如果未设置, 则将使用默认值0. 此方法会渲染一个隐藏的输入, 如果单选按钮未被选中并被提交, 则此属性的值仍然会通过隐藏的输入提交给服务器. 如果你不想要任何隐藏的输入, 你应该显示的将这个选项设置为null.
  • label: string, 单选按钮旁边显示的文本. 它不会被 HTML 编码. 因此, 你可以传递HTML代码, 如图像标签. 如果这是来自最终用户, 你应该 encode 来防止 XSS 攻击. 当指定此选项时, 该单选按钮将被一个 label 标签括起来. 如果你不想要任何标签, 你应该显示的将这个选项设置为null.
  • labelOptions: array, label 标签的 HTML 属性. 这仅在指定了label选项时使用.

其余选项将被渲染为结果标签的属性. 这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码. 如果值为null, 则不会渲染相应的属性.

如果你为输入元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

$enclosedByLabel boolean

是否将单选按钮放在 label 标签内. 如果为true, 则该方法仍将使用 $template 来排列单选按钮和错误消息, 不同之处在于该单选按钮由 label 标签括起来.

return $this

字段对象本身.

radioList() public 方法

渲染单选按钮列表input type="radio".

单选按钮列表类似于复选框列表, 不同之处在于它仅允许单选. 单选按钮的选择来自模型属性的值.

public $this radioList ( $items, $options = [] )
$items array

用于生成单选按钮的数据项. 数组值是标签, 数组键是相应的单选按钮值.

$options array

单选按钮列表的选项(name => config). 有关可用选项的列表, 请参阅 yii\helpers\Html::activeRadioList()$options参数.

return $this

字段对象本身.

render() public 方法

渲染整个输入字段.

该方法将生成 label 标签, 错误标签, 输入标签和提示标签(如果有的话), 并根据 $template 将它们组合成 HTML.

public string render ( $content null )
$content string|callable

字段容器中的内容. 如果为null(未设置), 则将调用默认方法来生成 label 标签, 错误标签和输入标签, 并将它们用作内容. 如果是一个可调用, 它将被调用来生成内容. 可调用的签名应该是:

function ($field) {
    return $html;
}
return string

渲染结果.

textInput() public 方法

渲染文本输入域input type="text".

除非在$options中明确指定, 否则该方法将自动为模型属性生成namevalue标签属性.

public $this textInput ( $options = [] )
$options array

标签选项的 name-value 值. 这些将被渲染为结果标签的属性. 这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码.

可以识别以下特殊选项:

  • maxlength: int|bool, 当maxlength设置为true并且模型属性由字符串验证器验证时, maxlength选项将取值为 yii\validators\StringValidator::$max. 自版本 2.0.3 起可用.

Note: 如果为输入元素(inpuy)设置了自定义的id, 则可能需要相应地调整 $selectors 的值.

return $this

字段对象本身.

textarea() public 方法

渲染多行文本输入域textarea.

模型属性值将用作文本区域中的内容.

public $this textarea ( $options = [] )
$options array

标签选项的 name-value 值. 这些将被渲染为结果标签的属性. 这些值将使用 yii\helpers\Html::encode() 进行 HTML 编码.

如果你为textarea元素设置了一个自定义的id, 则可能需要相应地调整 $selectors.

return $this

字段对象本身.

widget() public 方法

渲染一个小部件作为该字段的输入.

Note: 该小部件必须同时具有modelattribute属性. 它们将分别用该字段的 $model$attribute 初始化.

如果你想使用一个没有modelattribute属性的小部件, 请改用 render().

当从 yii\base\Widget 扩展的窗口小部件在活动字段中工作时, 最好使用 yii\widgets\InputWidget 作为基类.

例如, 要使用 yii\widgets\MaskedInput 小部件来获取某个日期输入, 可以使用以下代码, 假设$form是你的 yii\widgets\ActiveForm 实例:

$form->field($model, 'date')->widget(\yii\widgets\MaskedInput::className(), [
    'mask' => '99/99/9999',
]);

如果你为输入元素设置自定义的id, 则可能需要相应地调整 $selectors.

public $this widget ( $class, $config = [] )
$class string

小部件类名称.

$config array

将用于初始化小部件的 name-value 对.

return $this

字段对象本身.

throws Exception