Class yii\base\Widget

继承yii\base\Widget » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable, yii\base\ViewContextInterface
子类yii\captcha\Captcha, yii\console\widgets\Table, yii\grid\GridView, yii\widgets\ActiveForm, yii\widgets\BaseListView, yii\widgets\Block, yii\widgets\Breadcrumbs, yii\widgets\ContentDecorator, yii\widgets\DetailView, yii\widgets\FragmentCache, yii\widgets\InputWidget, yii\widgets\LinkPager, yii\widgets\LinkSorter, yii\widgets\ListView, yii\widgets\MaskedInput, yii\widgets\Menu, yii\widgets\Pjax, yii\widgets\Spaceless
可用自版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/base/Widget.php

Widget 是小部件的基类.

有关 Widget 的更多详细信息和使用信息, 请参阅 权威指南 - 应用结构 - 小部件(Widgets).

公共属性

隐藏继承的属性

属性类型描述定义在
$autoIdPrefix string 自动生成的小部件 ID 的前缀. yii\base\Widget
$behaviors yii\base\Behavior[] 附加到此组件的行为列表. 该属性是只读的. yii\base\Component
$counter integer 用于为小部件生成 $id 的计数器. yii\base\Widget
$id string|null 小部件的 ID. Note: 此属性的类型在 getter 和 setter 中不同. 有关详细信息, 请参阅 getId()setId(). yii\base\Widget
$stack yii\base\Widget[] 当前正在渲染的小部件(未结束). yii\base\Widget
$view yii\web\View 可用于渲染视图或视图文件的视图对象. Note: 此属性的类型在 getter 和 setter 中不同. 有关详细信息, 请参阅 getView()setView(). yii\base\Widget
$viewPath string 包含此小部件的视图文件的目录. 该属性是只读的. yii\base\Widget

公共方法

隐藏继承的方法

方法描述定义在
__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
__unset() 将组件属性设置为null. yii\base\Component
afterRun() 在执行小部件后立即调用该方法. yii\base\Widget
attachBehavior() 将行为附加到此组件. yii\base\Component
attachBehaviors() 将行为列表附加到组件. yii\base\Component
beforeRun() 在执行小部件之前立即调用该方法. yii\base\Widget
begin() 开始一个小部件. yii\base\Widget
behaviors() 返回此组件应该具有的行为列表. yii\base\Component
canGetProperty() 返回一个值, 指示属性是否可读取. yii\base\Component
canSetProperty() 返回一个值, 指示属性是否可设置. yii\base\Component
className() 返回此类的完全限定名称. yii\base\BaseObject
detachBehavior() 从组件中分离一个行为. yii\base\Component
detachBehaviors() 分离组件中的所有行为. yii\base\Component
end() 结束小部件. yii\base\Widget
ensureBehaviors() 确保在 behaviors() 中声明的行为已附加到此组件. yii\base\Component
getBehavior() 返回指定的行为对象. yii\base\Component
getBehaviors() 返回附加到此组件的所有行为. yii\base\Component
getId() 返回小部件的 ID. yii\base\Widget
getView() 返回可用于渲染视图或视图文件的视图对象. yii\base\Widget
getViewPath() 返回包含此小部件的视图文件的目录. yii\base\Widget
hasEventHandlers() 返回一个值, 指示是否有任何处理程序附加到指定的事件. yii\base\Component
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\Component
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\Component
init() 初始化该对象. yii\base\Widget
off() 从该组件分离现有的事件处理程序. yii\base\Component
on() 将事件处理程序附加到事件. yii\base\Component
render() 渲染视图. yii\base\Widget
renderFile() 渲染视图文件. yii\base\Widget
run() 执行小部件. yii\base\Widget
setId() 设置小部件的 ID. yii\base\Widget
setView() 设置此小部件要使用的视图对象. yii\base\Widget
trigger() 触发事件. yii\base\Component
widget() 创建一个小部件实例并运行它. yii\base\Widget

事件

隐藏继承的事件

事件类型描述定义在
EVENT_AFTER_RUN yii\base\WidgetEvent 在执行小部件之后立即触发的事件. (available since version 2.0.11) yii\base\Widget
EVENT_BEFORE_RUN yii\base\WidgetEvent 在执行小部件之前触发的事件. (available since version 2.0.11) yii\base\Widget
EVENT_INIT yii\base\Event 当通过 init() 初始化小部件时触发的事件. (available since version 2.0.11) yii\base\Widget

属性详情

$autoIdPrefix public static 属性

自动生成的小部件 ID 的前缀.

参见 getId().

public static string $autoIdPrefix 'w'
$counter public static 属性

用于为小部件生成 $id 的计数器.

public static integer $counter 0
$id public 属性

小部件的 ID. Note: 此属性的类型在 getter 和 setter 中不同. 有关详细信息, 请参阅 getId()setId().

public string|null $id null
$stack public static 属性

当前正在渲染的小部件(未结束). 该属性由 begin()end() 维护。

public static yii\base\Widget[] $stack = []
$view public 属性

可用于渲染视图或视图文件的视图对象. Note: 此属性的类型在 getter 和 setter 中不同. 有关详细信息, 请参阅 getView()setView().

public yii\web\View $view null
$viewPath public 属性

包含此小部件的视图文件的目录. 该属性是只读的.

public string $viewPath null

方法详情

afterRun() public 方法 (可用自版本: 2.0.11)

在执行小部件后立即调用该方法.

该方法将触发 EVENT_AFTER_RUN 事件. 该方法的返回值将用作小部件的返回值.

如果重写此方法, 则代码应如下所示:

public function afterRun($result)
{
    $result = parent::afterRun($result);
    // your custom code here
    return $result;
}
public mixed afterRun ( $result )
$result mixed

小部件返回的结果.

return mixed

处理后的小部件结果.

beforeRun() public 方法 (可用自版本: 2.0.11)

在执行小部件之前立即调用该方法.

该方法将触发 EVENT_BEFORE_RUN 事件. 方法的返回值将决定小部件是否应继续运行.

当重写此方法时, 请确保像下面这样调用了父实现:

public function beforeRun()
{
    if (!parent::beforeRun()) {
        return false;
    }

    // your custom code here

    return true; // 或'false'表示不运行小部件
}
public boolean beforeRun ( )
return boolean

小部件是否应继续执行.

begin() public static 方法

开始一个小部件.

此方法创建一个调用类的实例. 它将配置应用于创建的实例. 应该稍后调用匹配的 end(). 由于某些小部件可能使用输出缓冲, 因此应在同一个视图进行 end() 调用, 以避免破坏输出缓冲区的嵌套.

参见 end().

public static static begin ( $config = [] )
$config array

将用于初始化对象属性的 name-value 对.

return static

新创建的小部件实例.

end() public static 方法

结束小部件.

Note: 小部件的渲染结果将直接回显.

参见 begin().

public static static end ( )
return static

该小部件实例已结束.

throws yii\base\InvalidCallException

如果 begin()end() 调用未正确嵌套.

getId() public 方法

返回小部件的 ID.

public string|null getId ( $autoGenerate true )
$autoGenerate boolean

如果以前未设置, 是否生成一个 ID.

return string|null

小部件的 ID.

getView() public 方法

返回可用于渲染视图或视图文件的视图对象.

render()renderFile() 方法将使用这个视图对象来实现实际的视图渲染. 如果未设置, 它将默认为应用程序视图("view")组件.

public yii\web\View getView ( )
return yii\web\View

可用于渲染视图或视图文件的视图对象.

getViewPath() public 方法

返回包含此小部件的视图文件的目录.

默认实现返回包含小部件类文件的目录下的views子目录.

public string getViewPath ( )
return string

包含此小部件的视图文件的目录.

init() public 方法

初始化该对象.

在构造函数的末尾调用此方法. 默认实现将触发 EVENT_INIT 事件.

public void init ( )
render() public 方法

渲染视图.

可以用以下格式之一指定要渲染的视图:

  • 路径别名 (e.g. @app/views/site/index);
  • 应用程序内的绝对路径(eg. //site/index): 视图名称以双斜杠开始. 实际的视图文件将在应用程序的 视图路径 下查找.
  • 模块内的绝对路径(eg. /site/index): 视图名称以单斜杠开始. 实际的视图文件将在当前活动模块的 视图路径 下查找.
  • 相对路径(eg. index): 实际的视图文件将在 $viewPath 下查找.

如果视图名称不包含文件的扩展名, 它将使用默认的.php.

public string render ( $view, $params = [] )
$view string

视图名称.

$params array

在视图中应该可用的参数(name-value 对).

return string

渲染结果.

throws yii\base\InvalidArgumentException

如果视图文件不存在.

renderFile() public 方法

渲染视图文件.

public string renderFile ( $file, $params = [] )
$file string

要渲染的视图文件. 这可以是文件路径或 路径别名.

$params array

在视图中应该可用的参数(name-value 对).

return string

渲染结果.

throws yii\base\InvalidArgumentException

如果视图文件不存在.

run() public 方法

执行小部件.

public string run ( )
return string

输出小部件执行的结果.

setId() public 方法

设置小部件的 ID.

public void setId ( $value )
$value string

小部件的 ID.

setView() public 方法

设置此小部件要使用的视图对象.

public void setView ( $view )
$view yii\base\View

可用于渲染视图或视图文件的视图对象.

widget() public static 方法

创建一个小部件实例并运行它.

此方法返回小部件渲染结果.

public static string widget ( $config = [] )
$config array

将用于初始化对象属性的 name-value 对.

return string

小部件的渲染结果.

throws Exception

事件详情

EVENT_AFTER_RUN 事件类型 yii\base\WidgetEvent (可用自版本: 2.0.11)

在执行小部件之后立即触发的事件.

EVENT_BEFORE_RUN 事件类型 yii\base\WidgetEvent (可用自版本: 2.0.11)

在执行小部件之前触发的事件. 你可以将 yii\base\WidgetEvent::$isValid 设置为false, 以取消小部件的执行.

EVENT_INIT 事件类型 yii\base\Event (可用自版本: 2.0.11)

当通过 init() 初始化小部件时触发的事件.