Class yii\grid\ActionColumn

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

ActionColumn 是 yii\grid\GridView 小部件的列, 显示用于查看和操作项目的按钮.

要将一个 ActionColumn 添加到 网格视图, 请将其添加到 columns 配置中, 如下所示:

'columns' => [
    // ...
    [
        'class' => ActionColumn::className(),
        // 你可以在这里配置其它属性
    ],
]

有关 ActionColumn 的更多详细信息和使用信息, 请参阅 权威指南 - 显示数据 - 数据小部件(Data Widgets).

公共属性

隐藏继承的属性

属性类型描述定义在
$buttonOptions array 应用于 默认按钮 的 HTML 选项. yii\grid\ActionColumn
$buttons array 按钮渲染回调. yii\grid\ActionColumn
$content callable 这是一个可调用的函数, 将被用来生成每个单元格的内容. yii\grid\Column
$contentOptions array|Closure 数据单元格(tbody > tr > td)标签的 HTML 属性. yii\grid\Column
$controller string 应该处理此处指定的动作的控制器的 ID. yii\grid\ActionColumn
$filterOptions array 过滤器单元标签的 HTML 属性. yii\grid\Column
$footer string 页脚单元格内容. yii\grid\Column
$footerOptions array 页脚单元格(tfoot > tr > td)标签的 HTML 属性. yii\grid\Column
$grid yii\grid\GridView 拥有此列的网格视图对象. yii\grid\Column
$header string 标题单元格内容. yii\grid\Column
$headerOptions array 标题单元格(thead > tr > th)标签的 HTML 属性. yii\grid\ActionColumn
$options array 列组标记(colgroup 中对应列的 col 标签)的 HTML 属性. yii\grid\Column
$template string 用于组成操作列中每个单元格的模板. yii\grid\ActionColumn
$urlCreator callable 使用指定的模型信息创建按钮 URL 的回调. yii\grid\ActionColumn
$visible boolean 该列是否可见. yii\grid\Column
$visibleButtons array 每个按钮的可见性条件. yii\grid\ActionColumn

公共方法

隐藏继承的方法

方法描述定义在
__call() 调用不是类方法的已命名方法. yii\base\BaseObject
__construct() 构造函数. yii\base\BaseObject
__get() 返回对象属性的值. yii\base\BaseObject
__isset() 检查属性是否已设置, 即已定义且不为null. yii\base\BaseObject
__set() 设置对象属性的值. yii\base\BaseObject
__unset() 将对象属性设置为null. yii\base\BaseObject
canGetProperty() 返回一个值, 指示属性是否可读. yii\base\BaseObject
canSetProperty() 返回一个值, 指示属性是否可写. yii\base\BaseObject
className() 返回此类的完全限定名称. yii\base\BaseObject
createUrl() 为给定的动作和模型创建一个 URL. yii\grid\ActionColumn
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化对象. yii\grid\ActionColumn
renderDataCell() 渲染数据单元格. yii\grid\Column
renderFilterCell() 渲染过滤器单元格. yii\grid\Column
renderFooterCell() 渲染页脚单元格. yii\grid\Column
renderHeaderCell() 渲染标题单元格. yii\grid\Column

受保护的方法

隐藏继承的方法

方法描述定义在
getHeaderCellLabel() 返回标题单元格标签. yii\grid\Column
initDefaultButton() 初始化单个按钮的默认按钮渲染回调. yii\grid\ActionColumn
initDefaultButtons() 初始化默认按钮渲染回调. yii\grid\ActionColumn
renderDataCellContent() 渲染数据单元格内容. yii\grid\ActionColumn
renderFilterCellContent() 渲染过滤器单元格内容. yii\grid\Column
renderFooterCellContent() 渲染页脚单元格内容. yii\grid\Column
renderHeaderCellContent() 渲染标题单元格内容. yii\grid\Column

属性详情

$buttonOptions public 属性 (可用自版本: 2.0.4)

应用于 默认按钮 的 HTML 选项.

public array $buttonOptions = []
$buttons public 属性

按钮渲染回调.

数组键是按钮名称(不包括大括号), 值是相应的按钮渲染回调. 回调应使用以下签名:

function ($url, $model, $key) {
    // 返回按钮的 HTML 代码
}

其中$url是列为按钮创建的 URL, $model是为当前行渲染的模型对象, $key是数据提供者数组中模型的键.

你可以为按钮添加更多条件, 例如只有在模型可编辑时才显示它(假设你有一个状态(status)字段指出):

[
    'update' => function ($url, $model, $key) {
        return $model->status === 'editable' ? Html::a('Update', $url) : '';
    },
],
public array $buttons = []
$controller public 属性

应该处理此处指定的动作的控制器的 ID.

如果未设置, 它将使用当前活动的控制器.

该属性主要由 $urlCreator 用于为不同的动作创建 URL.

该属性的值将以每个动作名称作为前缀, 以形成动作的路由.

public string $controller null
$headerOptions public 属性

标题单元格(thead > tr > th)标签的 HTML 属性.

public array $headerOptions = ['class' => 'action-column']
$template public 属性

用于组成操作列中每个单元格的模板.

大括号内的标记被视为控制器动作ID(在动作列的上下文中也称为按钮名称). 它们将被在 $buttons 中指定的相应的按钮渲染回调代替.

例如, 标记{view}将由回调buttons['view']的结果代替. 如果找不到回调, 则令牌将被替换为空字符串.

例如, 仅只有视图和更新按钮, 你可以将 ActionColumn 添加到你的 GridView 列中, 如下所示:

['class' => 'yii\grid\ActionColumn', 'template' => '{view} {update}'],

参见 $buttons.

public string $template '{view} {update} {delete}'
$urlCreator public 属性

使用指定的模型信息创建按钮 URL 的回调.

回调的签名应该与 createUrl() 的签名相同.

从 2.0.10 开始, 它可以接受其它参数, 该参数引用列实例本身:

function (string $action, mixed $model, mixed $key, integer $index, ActionColumn $this) {
    //return string;
}

如果未设置此属性, 则将使用 createUrl() 创建按钮 URL .

public callable $urlCreator null
$visibleButtons public 属性 (可用自版本: 2.0.7)

每个按钮的可见性条件.

数组键是按钮名称(不包括大括号), 值是布尔值true/false或匿名函数.

当未在该数组中指定按钮名称时, 默认情况下将显示它.

回调必须使用以下签名:

function ($model, $key, $index) {
    return $model->status === 'editable';
}

或者, 你可以传递一个布尔值:

[
    'update' => \Yii::$app->user->can('update'),
],
public array $visibleButtons = []

方法详情

createUrl() public 方法

为给定的动作和模型创建一个 URL.

每个按钮和每行都会调用此方法.

public string createUrl ( $action, $model, $key, $index )
$action string

按钮名称(或动作 ID).

$model yii\db\ActiveRecordInterface

数据模型.

$key mixed

与数据模型关联的键.

$index integer

当前行的索引.

return string

创建的 URL.

init() public 方法

初始化对象.

在使用给定的配置初始化对象之后, 在构造函数的末尾调用此方法.

public void init ( )
initDefaultButton() protected 方法 (可用自版本: 2.0.11)

初始化单个按钮的默认按钮渲染回调.

protected void initDefaultButton ( $name, $iconName, $additionalOptions = [] )
$name string

在模板中写入的按钮名称.

$iconName string

Bootstrap glyphicon 类的一部分, 使其具有独特性.

$additionalOptions array

附加选项数组.

initDefaultButtons() protected 方法

初始化默认按钮渲染回调.

protected void initDefaultButtons ( )
renderDataCellContent() protected 方法

渲染数据单元格内容.

protected string renderDataCellContent ( $model, $key, $index )
$model mixed

数据模型.

$key mixed

与数据模型关联的键.

$index integer

yii\grid\GridView::$dataProvider 返回的项目数组中的数据项的从0开始的索引.

return string

渲染结果.