Class yii\grid\DataColumn

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

DataColumn 是 yii\grid\GridView 小部件的默认列类型.

它用于显示数据列, 并允许 排序 and 过滤 它们.

简单的数据列定义引用 GridView 数据提供者的数据模型中的属性. 属性的名称由 $attribute 指定.

通过设置 $value$label, 可以自定义标题和单元格内容.

数据列区分 数据单元格值数据单元格内容. 单元格值是可用于计算的未格式化的值, 而实际的单元格内容是该值的 格式化 版本, 可能包含 HTML 标记.

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

公共属性

隐藏继承的属性

属性类型描述定义在
$attribute string 与此列关联的属性名称. yii\grid\DataColumn
$content callable 这是一个可调用的函数, 将被用来生成每个单元格的内容. yii\grid\Column
$contentOptions array|Closure 数据单元格(tbody > tr > td)标签的 HTML 属性. yii\grid\Column
$enableSorting boolean 是否允许按此列排序. yii\grid\DataColumn
$encodeLabel boolean 标题标签是否应该是 HTML 编码的. yii\grid\DataColumn
$filter string|array|null|false 用于表示该数据列的过滤器输入(eg. yii\grid\DataColumn
$filterInputOptions array 过滤器输入字段的 HTML 属性. yii\grid\DataColumn
$filterOptions array 过滤器单元标签的 HTML 属性. yii\grid\Column
$footer string 页脚单元格内容. yii\grid\Column
$footerOptions array 页脚单元格(tfoot > tr > td)标签的 HTML 属性. yii\grid\Column
$format string|array|Closure 每个数据模型的值应该显示为哪种格式(eg. yii\grid\DataColumn
$grid yii\grid\GridView 拥有此列的网格视图对象. yii\grid\Column
$header string 标题单元格内容. yii\grid\Column
$headerOptions array 标题单元格(thead > tr > th)标签的 HTML 属性. yii\grid\Column
$label string 标签将显示在 标题单元格 中, 并在为此列启用排序时也将用作排序链接标签. yii\grid\DataColumn
$options array 列组标记(colgroup 中对应列的 col 标签)的 HTML 属性. yii\grid\Column
$sortLinkOptions array 当为此列启用排序时, 由 yii\data\Sort::link() 生成的标题单元格中链接标记的 HTML 属性. yii\grid\DataColumn
$value string|Closure 一个匿名函数或一个字符串, 用于确定要在当前列中显示的值. yii\grid\DataColumn
$visible boolean 该列是否可见. yii\grid\Column

公共方法

隐藏继承的方法

方法描述定义在
__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
getDataCellValue() 返回数据单元格的值. yii\grid\DataColumn
hasMethod() 返回一个值, 指示方法是否已定义. yii\base\BaseObject
hasProperty() 返回一个值, 指示属性是否已定义. yii\base\BaseObject
init() 初始化对象. yii\base\BaseObject
renderDataCell() 渲染数据单元格. yii\grid\Column
renderFilterCell() 渲染过滤器单元格. yii\grid\Column
renderFooterCell() 渲染页脚单元格. yii\grid\Column
renderHeaderCell() 渲染标题单元格. yii\grid\Column

受保护的方法

隐藏继承的方法

方法描述定义在
getHeaderCellLabel() 返回标题单元格标签. yii\grid\DataColumn
renderDataCellContent() 渲染数据单元格内容. yii\grid\DataColumn
renderFilterCellContent() 渲染过滤器单元格内容. yii\grid\DataColumn
renderFooterCellContent() 渲染页脚单元格内容. yii\grid\Column
renderHeaderCellContent() 渲染标题单元格内容. yii\grid\DataColumn

属性详情

$attribute public 属性

与此列关联的属性名称.

如果未指定 $content$value 时, 则将从每个数据模型中检索指定属性的值并显示.

另外, 如果未指定 $label, 则将显示与该属性关联的标签.

public string $attribute null
$enableSorting public 属性

是否允许按此列排序.

如果为true并且在 yii\grid\GridView::$dataProvider 的排序定义中找到 $attribute, 则该列的标题单元格将包含一个可能在被点击时触发排序的链接.

public boolean $enableSorting true
$encodeLabel public 属性 (可用自版本: 2.0.1)

标题标签是否应该是 HTML 编码的.

参见 $label.

public boolean $encodeLabel true
$filter public 属性

用于表示该数据列的过滤器输入(eg. 文本字段, 下拉列表)的 HTML 代码.

仅在设置 yii\grid\GridView::$filterModel 时此属性才有效.

  • 如果未设置此属性, 则会使用 $filterInputOptions 定义的属性生成文本字段作为过滤器输入. 有关如何生成活动输入标记的详细信息, 请参阅 yii\helpers\BaseHtml::activeInput().
  • 如果此属性是一个数组, 则将生成一个使用此属性值作为列表选项的下拉列表.
  • 如果你不想为此数据列过滤, 请将此值设置为false.
public string|array|null|false $filter null
$filterInputOptions public 属性

过滤器输入字段的 HTML 属性.

该属性与 $filter 属性结合使用.

$filter 未设置或者是一个数组时, 此属性将被用于渲染生成的过滤器输入字段的 HTML 属性.

默认值中的id为空可确保不会从模型属性获取id, 从而提供更好的性能.

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

public array $filterInputOptions = ['class' => 'form-control''id' => null]
$format public 属性

每个数据模型的值应该显示为哪种格式(eg. "raw", "text", "html", ['date', 'php:Y-m-d']).

支持的格式由 yii\grid\GridView 使用的 formatter 确定.

默认格式是text, 当将 yii\i18n\Formatter 用作 GridView 的 formatter 时, 它将格式化该值为 HTML 编码的纯文本.

参见 yii\i18n\Formatter::format().

public string|array|Closure $format 'text'
$label public 属性

标签将显示在 标题单元格 中, 并在为此列启用排序时也将用作排序链接标签.

如果未设置, 并且 GridViews 数据提供者提供的模型是 yii\db\ActiveRecord 的实例, 则将使用 yii\db\ActiveRecord::getAttributeLabel() 确定标签.

否则, 将使用 yii\helpers\Inflector::camel2words() 来获取标签.

public string $label null
$sortLinkOptions public 属性

当为此列启用排序时, 由 yii\data\Sort::link() 生成的标题单元格中链接标记的 HTML 属性.

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

public array $sortLinkOptions = []
$value public 属性

一个匿名函数或一个字符串, 用于确定要在当前列中显示的值.

如果这是一个匿名函数, 那么将针对每一行调用该函数, 并将返回值用作每个数据模型显示的值.

这个函数的签名应该是: function ($model, $key, $index, $column).

$model, $key$index分别指当前正在渲染的行的模型, 键和索引, $column是对 yii\grid\DataColumn 对象的引用.

你也可以将此属性设置为表示要在此列中显示的属性名称的字符串.

当要显示的属性与用于排序和过滤的 $attribute 不同时, 可以使用此选项.

如果未设置, 将使用$model[$attribute]来获取值, 其中$attribute$attribute 的值.

public string|Closure $value null

方法详情

getDataCellValue() public 方法

返回数据单元格的值.

public string getDataCellValue ( $model, $key, $index )
$model mixed

数据模型.

$key mixed

与数据模型关联的键.

$index integer

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

return string

数据单元格的值.

getHeaderCellLabel() protected 方法 (可用自版本: 2.0.8)

返回标题单元格标签.

可以重写此方法来自定义标题单元格的标签.

protected string getHeaderCellLabel ( )
return string

Label

renderDataCellContent() protected 方法

渲染数据单元格内容.

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

数据模型.

$key mixed

与数据模型关联的键.

$index integer

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

return string

渲染结果.

renderFilterCellContent() protected 方法

渲染过滤器单元格内容.

默认实现只是渲染一个空格.

可以重写此方法以自定义过滤器单元的渲染(如果有的话).

protected string renderFilterCellContent ( )
return string

渲染结果.

renderHeaderCellContent() protected 方法

渲染标题单元格内容.

默认实现只是渲染 $header.

可以重写此方法来自定义标题单元格的渲染.

protected string renderHeaderCellContent ( )
return string

渲染结果.