没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\grid\ActionColumn

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

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

要将 ActionColumn 添加到 gridview,请将其添加到 columns 配置中,如下所示:

'columns' => [
    // ...
    [
        'class' => ActionColumn::className(),
        // you may configure additional properties here
    ],
]

关于 ActionColumn 更多的细节和用法,请参阅 guide article on data widgets

公共属性

隐藏继承的属性

属性类型描述被定义在
$buttonOptions array 要用于 default button 的 html 选项。 yii\grid\ActionColumn
$buttons array 按钮渲染的回调。 数组键是按钮名称(没有大括号),并且值是相应的按钮渲染的回调。 回调应该像以下来实现: `php function ($url, $model, $key) { // return the button HTML code } 其中 `$url` 是列为按钮创建的 URL,`$model` 是为当前行渲染的模型对象, `$key` 是数据提供程序数组中模型的键。 你可以为该按钮添加更多的条件, 例如仅在模型可编辑的时候显示它(假设你有一个指示该状态的字段): php [ 'update' => function ($url, $model, $key) { return $model->status === 'editable' ? Html::a('Update', $url) : ''; }, ], ` yii\grid\ActionColumn
$content callable 这是用于生成每个单元格内容的回调函数。 函数的写法如下:function ($model, $key, $index, $column)。 其中,$model$key$index 表示当前渲染行的模型,键和索引, $column 是对 yii\grid\Column 对象的引用。 yii\grid\Column
$contentOptions array|Closure 数据单元标签的 HTML 属性。 这可以是属性数组或返回此类数组的匿名函数(Closure)。 函数的写法应该如下:function ($model, $key, $index, $column)。 其中,$model$key$index 表示当前渲染行的模型、键和索引, $column 是对 yii\grid\Column 对象的引用。 函数可用于根据该行中的数据将不同的属性分配给不同的行。 yii\grid\Column
$controller string 应该处理此处指定的操作的控制器的 ID。 如果没有设置,将使用当前有效的控制器。 此属性主要是由 $urlCreator 用于为不同的操作创建 URLs。 此属性的值将作为每个操作名称的前缀,以形成操作的路径。 yii\grid\ActionColumn
$filterOptions array 筛选单元格标签的 HTML 属性。 yii\grid\Column
$footer string 页脚单元格内容。注意,它不是 HTML 编码的。 yii\grid\Column
$footerOptions array The 页脚单元格标签的 HTML 属性。 yii\grid\Column
$grid yii\grid\GridView 拥有此列的网格视图对象。 yii\grid\Column
$header string 标题单元格内容。注意,它不是 HTML 编码的。 yii\grid\Column
$headerOptions array 标题单元格标签的 HTML 属性。 yii\grid\ActionColumn
$options array 列组标签的 HTML 属性。 yii\grid\Column
$template string 用于组合操作列中每个单元格的模板。 括在大括号的标记被视为控制器操作 IDs(在操作列上的上下文中也称为 按钮名称)。 它们将被 $buttons 中指定的相应按钮渲染回调替换。 例如,令牌 {view} 将被回调 buttons['view'] 的结果所取代。 如果找不到回调,则令牌将替换为空字符串。 例如,要只有视图和更新按钮,你可以将 ActionColumn 添加到 GridView 列,如下所示: `php ['class' => 'yii\grid\ActionColumn', 'template' => '{view} {update}'], ` yii\grid\ActionColumn
$urlCreator callable 使用指定的模型信息创建按钮 URL 的回调。 回调的写法应该与 createUrl() 的写法相同 从 2. yii\grid\ActionColumn
$visible boolean 列是否可见。默认为 true。 yii\grid\Column
$visibleButtons array 每个按钮的可见性条件。 数组键是按钮名称(没有大括号),值是布尔值 true/false 或者匿名函数。 如果未在此数组中指定按钮名称,则默认情况下将显示该名称。 回调应该像以下来实现: `php function ($model, $key, $index) { return $model->status === 'editable'; } Or you can pass a boolean value: php [ 'update' => \Yii::$app->user->can('update'), ], ` yii\grid\ActionColumn

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\BaseObject
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of an object property. yii\base\BaseObject
__isset() Checks if a property is set, i.e. defined and not null. yii\base\BaseObject
__set() Sets value of an object property. yii\base\BaseObject
__unset() Sets an object property to null. yii\base\BaseObject
canGetProperty() Returns a value indicating whether a property can be read. yii\base\BaseObject
canSetProperty() Returns a value indicating whether a property can be set. yii\base\BaseObject
className() Returns the fully qualified name of this class. yii\base\BaseObject
createUrl() 为给定的操作和模型创建 URL。 为每个按钮和每一行调用此方法。 yii\grid\ActionColumn
hasMethod() Returns a value indicating whether a method is defined. yii\base\BaseObject
hasProperty() Returns a value indicating whether a property is defined. yii\base\BaseObject
init() Initializes the object. yii\grid\ActionColumn
renderDataCell() 渲染数据单元格。 yii\grid\Column
renderFilterCell() Renders the filter cell. yii\grid\Column
renderFooterCell() 渲染标题单元格。 yii\grid\Column
renderHeaderCell() Renders the header cell. yii\grid\Column

受保护的方法

隐藏继承的方法

方法描述被定义在
getHeaderCellLabel() 返回标题单元格标签。 可以重写此方法以自定义标题单元格的标签。 yii\grid\Column
initDefaultButton() 初始化单个按钮的默认按钮渲染回调。 yii\grid\ActionColumn
initDefaultButtons() 初始化默认按钮渲染回调。 yii\grid\ActionColumn
renderDataCellContent() 渲染数据单元格内容。 yii\grid\ActionColumn
renderFilterCellContent() 渲染过滤单元格内容。 默认实现只是渲染一个空格。 可以重写此方法以自定义过滤器单元的渲染(如果有)。 yii\grid\Column
renderFooterCellContent() 渲染页脚单元格内容。 默认实现只是渲染 $footer。 可以重写此方法以自定义页脚单元格的渲染。 yii\grid\Column
renderHeaderCellContent() 渲染过滤单元格。 默认实现只是渲染 $header。 可以重写此方法以自定义标题单元格的渲染。 yii\grid\Column

属性详情

$buttonOptions 公共 属性 (自版本 2.0.4 可用)

要用于 default button 的 html 选项。

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

按钮渲染的回调。 数组键是按钮名称(没有大括号),并且值是相应的按钮渲染的回调。 回调应该像以下来实现:

function ($url, $model, $key) {
    // return the button HTML code
}

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

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

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

应该处理此处指定的操作的控制器的 ID。 如果没有设置,将使用当前有效的控制器。 此属性主要是由 $urlCreator 用于为不同的操作创建 URLs。 此属性的值将作为每个操作名称的前缀,以形成操作的路径。

public string $controller null
$headerOptions 公共 属性

标题单元格标签的 HTML 属性。

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

用于组合操作列中每个单元格的模板。 括在大括号的标记被视为控制器操作 IDs(在操作列上的上下文中也称为 按钮名称)。 它们将被 $buttons 中指定的相应按钮渲染回调替换。 例如,令牌 {view} 将被回调 buttons['view'] 的结果所取代。 如果找不到回调,则令牌将替换为空字符串。

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

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

参见 $buttons.

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

使用指定的模型信息创建按钮 URL 的回调。 回调的写法应该与 createUrl() 的写法相同 从 2.0.10 版本开始,它可以接受附加参数,它引用实例本身:

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

如果未设置此属性,将使用 createUrl() 创建 URLs。

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

每个按钮的可见性条件。 数组键是按钮名称(没有大括号),值是布尔值 true/false 或者匿名函数。 如果未在此数组中指定按钮名称,则默认情况下将显示该名称。 回调应该像以下来实现:

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

Or you can pass a boolean value:

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

方法详情

createUrl() 公共 方法

为给定的操作和模型创建 URL。 为每个按钮和每一行调用此方法。

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

按钮名称(或方法 ID)。

$model yii\db\ActiveRecordInterface

数据模型

$key mixed

与数据模型相关的键

$index integer

当前行索引

return string

创建的 URL

init() 公共 方法

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

public void init()
initDefaultButton() 受保护 方法 (自版本 2.0.11 可用)

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

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

在模板中写入的按钮名称

$iconName string

Bootstrap glyphicon 类的一部分,使其独一无二

$additionalOptions array

一系列的附加选项

initDefaultButtons() 受保护 方法

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

protected void initDefaultButtons()
renderDataCellContent() 受保护 方法

渲染数据单元格内容。

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

数据模型

$key mixed

与数据模型相关的键

$index integer

yii\grid\GridView::$dataProvider 返回的模型数组中的数据模型的从零开始的索引。

return string

渲染结果