没有命名空间的类 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\DataColumn

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

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

它用于显示数据列并且可以使用 sortingfiltering

简单的数据列定义是指 GridView 数据提供者的数据模型中的属性。 属性的名称由 $attribute 来指定。

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

数据列区分 data cell valuedata cell content。 单元格值是可以用于计算的未格式化的值, 但实际单元格内容是该值的 formatted 版本, 其可以包含 HTML 标签。

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

公共属性

隐藏继承的属性

属性类型描述被定义在
$attribute string 与此列关联的属性名称。 如果没有指定 $content 也没有指定 $value,则将从每个数据模型中检索并显示指定属性的值。 此外,如果 $label 没有指定,将显示与该属性关联的标签。 yii\grid\DataColumn
$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
$enableSorting boolean 是否允许按此列排序。如果为 true, 并且在 yii\grid\GridView::$dataProvider 的排序定义中找到 $attribute, 则此列的标题单元格将包含可能在单击时触发排序的链接。 yii\grid\DataColumn
$encodeLabel boolean 标题标签是否是 HTML 编码的。 yii\grid\DataColumn
$filter string|array|null|false HTML 代码表示用于此数据列的过滤器输入(e.g. 文本字段,下拉列表)。 仅当 yii\grid\GridView::$filterModel 设置时,此属性才有效。 - 如果未设置此属性,将生成一个文本字段作为过滤器输入, 其属性由 $filterInputOptions 来定义。 有关于如何生成输入标记的详细信息,请参阅 yii\helpers\BaseHtml::activeInput()。 - 如果属性是一个数组, 将生成一个下拉列表,该列表使用此属性值作为列表选项。 - 如果你不想要此数据列的过滤器,请将此值设置为false。 yii\grid\DataColumn
$filterInputOptions array 过滤器输入字段的 HTML 属性。 此属性与 $filter 属性结合使用。当 $filter 没有设置或者是一个数组, 此属性将用于渲染生成的过滤器输入字段的 HTML 属性。 Empty id in the default value ensures that id would not be obtained from the model attribute thus providing better performance. yii\grid\DataColumn
$filterOptions array 筛选单元格标签的 HTML 属性。 yii\grid\Column
$footer string 页脚单元格内容。注意,它不是 HTML 编码的。 yii\grid\Column
$footerOptions array The 页脚单元格标签的 HTML 属性。 yii\grid\Column
$format string|array|Closure 每个数据模型的值应该以何种格式显示(e.g. "raw""text""html"['date', 'php:Y-m-d'])。 支持的格式由 yii\grid\GridView 使用的 formatter 来确定。 默认的格式是 "text",当 GridView 的 yii\i18n\Formatter 用作 formatter 时, 该值将格式化为 HTML 编码的纯文本。 yii\grid\DataColumn
$grid yii\grid\GridView 拥有此列的网格视图对象。 yii\grid\Column
$header string 标题单元格内容。注意,它不是 HTML 编码的。 yii\grid\Column
$headerOptions array 标题单元格标签的 HTML 属性。 yii\grid\Column
$label string Label 在 header cell 中显示, 并且未在此列启用排序时用作排序链接的标签。 如果没有设置,并且 GridView 数据提供器是 yii\db\ActiveRecord 的实例, 标签将使用 yii\db\ActiveRecord::getAttributeLabel() 来确定。 否则 yii\helpers\Inflector::camel2words() 将用于获取标签。 yii\grid\DataColumn
$options array 列组标签的 HTML 属性。 yii\grid\Column
$sortLinkOptions array 当此列启用排序时, 由 yii\data\Sort::link() 生成的标题单元格中的链接标记的 HMTL 属性。 yii\grid\DataColumn
$value string|Closure 匿名函数或用于确定要在当前列中显示的值的字符串。 如果这是一个匿名函数, 每一行都将调用它,返回值将用作为每个数据模型显示的值。 函数的写法应该为:function ($model, $key, $index, $column)。 其中,$model$key$index 表示当前渲染行的模型,键和索引, $column 是对 yii\grid\DataColumn 对象的引用。 你还可以将此属性设置为表示要在此列中显示的属性名称的字符串。 当要显示的属性与用于排序和过滤的 $attribute 不同时, 可以使用此选项。 如果没有设置,将使用 $model[$attribute] 来获取值,其中 $attribute$attribute 的值。 yii\grid\DataColumn
$visible boolean 列是否可见。默认为 true。 yii\grid\Column

公共方法

隐藏继承的方法

方法描述被定义在
__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
getDataCellValue() 返回数据单元格值。 yii\grid\DataColumn
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\base\BaseObject
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() {@inheritdoc] yii\grid\DataColumn
renderDataCellContent() 渲染数据单元格内容。 yii\grid\DataColumn
renderFilterCellContent() 渲染过滤单元格内容。 默认实现只是渲染一个空格。 可以重写此方法以自定义过滤器单元的渲染(如果有)。 yii\grid\DataColumn
renderFooterCellContent() 渲染页脚单元格内容。 默认实现只是渲染 $footer。 可以重写此方法以自定义页脚单元格的渲染。 yii\grid\Column
renderHeaderCellContent() 渲染过滤单元格。 默认实现只是渲染 $header。 可以重写此方法以自定义标题单元格的渲染。 yii\grid\DataColumn

属性详情

$attribute 公共 属性

与此列关联的属性名称。 如果没有指定 $content 也没有指定 $value,则将从每个数据模型中检索并显示指定属性的值。

此外,如果 $label 没有指定,将显示与该属性关联的标签。

public string $attribute null
$enableSorting 公共 属性

是否允许按此列排序。如果为 true, 并且在 yii\grid\GridView::$dataProvider 的排序定义中找到 $attribute, 则此列的标题单元格将包含可能在单击时触发排序的链接。

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

标题标签是否是 HTML 编码的。

参见 $label.

public boolean $encodeLabel true
$filter 公共 属性

HTML 代码表示用于此数据列的过滤器输入(e.g. 文本字段,下拉列表)。 仅当 yii\grid\GridView::$filterModel 设置时,此属性才有效。

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

过滤器输入字段的 HTML 属性。 此属性与 $filter 属性结合使用。当 $filter 没有设置或者是一个数组, 此属性将用于渲染生成的过滤器输入字段的 HTML 属性。

Empty id in the default value ensures that id would not be obtained from the model attribute thus providing better performance.

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

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

每个数据模型的值应该以何种格式显示(e.g. "raw""text""html"['date', 'php:Y-m-d'])。 支持的格式由 yii\grid\GridView 使用的 formatter 来确定。 默认的格式是 "text",当 GridView 的 yii\i18n\Formatter 用作 formatter 时, 该值将格式化为 HTML 编码的纯文本。

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

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

Label 在 header cell 中显示, 并且未在此列启用排序时用作排序链接的标签。 如果没有设置,并且 GridView 数据提供器是 yii\db\ActiveRecord 的实例, 标签将使用 yii\db\ActiveRecord::getAttributeLabel() 来确定。 否则 yii\helpers\Inflector::camel2words() 将用于获取标签。

public string $label null
$sortLinkOptions 公共 属性

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

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

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

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

如果这是一个匿名函数, 每一行都将调用它,返回值将用作为每个数据模型显示的值。 函数的写法应该为:function ($model, $key, $index, $column)。 其中,$model$key$index 表示当前渲染行的模型,键和索引, $column 是对 yii\grid\DataColumn 对象的引用。

你还可以将此属性设置为表示要在此列中显示的属性名称的字符串。 当要显示的属性与用于排序和过滤的 $attribute 不同时, 可以使用此选项。

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

public string|Closure $value null

方法详情

getDataCellValue() 公共 方法

返回数据单元格值。

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

数据模型

$key mixed

与数据模型相关的键

$index integer

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

return string

数据单元格值

getHeaderCellLabel() 受保护 方法 (自版本 2.0.8 可用)

{@inheritdoc]

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

渲染数据单元格内容。

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

数据模型

$key mixed

与数据模型相关的键

$index integer

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

return string

渲染结果

renderFilterCellContent() 受保护 方法

渲染过滤单元格内容。 默认实现只是渲染一个空格。 可以重写此方法以自定义过滤器单元的渲染(如果有)。

protected string renderFilterCellContent()
return string

渲染结果

renderHeaderCellContent() 受保护 方法

渲染过滤单元格。 默认实现只是渲染 $header。 可以重写此方法以自定义标题单元格的渲染。

protected string renderHeaderCellContent()
return string

渲染结果