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 |
属性详情
要用于 default button 的 html 选项。
按钮渲染的回调。 数组键是按钮名称(没有大括号),并且值是相应的按钮渲染的回调。 回调应该像以下来实现:
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) : '';
},
],
应该处理此处指定的操作的控制器的 ID。 如果没有设置,将使用当前有效的控制器。 此属性主要是由 $urlCreator 用于为不同的操作创建 URLs。 此属性的值将作为每个操作名称的前缀,以形成操作的路径。
标题单元格标签的 HTML 属性。
用于组合操作列中每个单元格的模板。
括在大括号的标记被视为控制器操作 IDs(在操作列上的上下文中也称为 按钮名称)。
它们将被 $buttons 中指定的相应按钮渲染回调替换。
例如,令牌 {view}
将被回调 buttons['view']
的结果所取代。
如果找不到回调,则令牌将替换为空字符串。
例如,要只有视图和更新按钮,你可以将 ActionColumn 添加到 GridView 列,如下所示:
['class' => 'yii\grid\ActionColumn', 'template' => '{view} {update}'],
参见 $buttons.
使用指定的模型信息创建按钮 URL 的回调。 回调的写法应该与 createUrl() 的写法相同 从 2.0.10 版本开始,它可以接受附加参数,它引用实例本身:
function (string $action, mixed $model, mixed $key, integer $index, ActionColumn $this) {
//return string;
}
如果未设置此属性,将使用 createUrl() 创建 URLs。
每个按钮的可见性条件。 数组键是按钮名称(没有大括号),值是布尔值 true/false 或者匿名函数。 如果未在此数组中指定按钮名称,则默认情况下将显示该名称。 回调应该像以下来实现:
function ($model, $key, $index) {
return $model->status === 'editable';
}
Or you can pass a boolean value:
[
'update' => \Yii::$app->user->can('update'),
],
方法详情
为给定的操作和模型创建 URL。 为每个按钮和每一行调用此方法。
public string createUrl($action, $model, $key, $index) | ||
$action | string | 按钮名称(或方法 ID)。 |
$model | yii\db\ActiveRecordInterface | 数据模型 |
$key | mixed | 与数据模型相关的键 |
$index | integer | 当前行索引 |
return | string | 创建的 URL |
---|
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() |
初始化单个按钮的默认按钮渲染回调。
protected void initDefaultButton($name, $iconName, $additionalOptions = []) | ||
$name | string | 在模板中写入的按钮名称 |
$iconName | string | Bootstrap glyphicon 类的一部分,使其独一无二 |
$additionalOptions | array | 一系列的附加选项 |
初始化默认按钮渲染回调。
protected void initDefaultButtons() |
渲染数据单元格内容。
protected string renderDataCellContent($model, $key, $index) | ||
$model | mixed | 数据模型 |
$key | mixed | 与数据模型相关的键 |
$index | integer | 由 yii\grid\GridView::$dataProvider 返回的模型数组中的数据模型的从零开始的索引。 |
return | string | 渲染结果 |
---|