0 关注者

类 yii\grid\Column

继承关系yii\grid\Column » yii\base\BaseObject
实现接口yii\base\Configurable
子类yii\grid\ActionColumn, yii\grid\CheckboxColumn, yii\grid\DataColumn, yii\grid\RadioButtonColumn, yii\grid\SerialColumn
可用版本2.0
源代码 https://github.com/yiisoft/yii2/blob/master/framework/grid/Column.php

Column 是所有 yii\grid\GridView 列类的基类。

有关 Column 的更多详细信息和使用方法,请参阅 数据小部件指南文章

公共属性

隐藏继承的属性

属性 类型 描述 定义于
$content callable 这是一个可调用对象,将用于生成每个单元格的内容。 yii\grid\Column
$contentOptions array|Closure 数据单元格标签的 HTML 属性。 yii\grid\Column
$filterOptions array 筛选单元格标签的 HTML 属性。 yii\grid\Column
$footer string 页脚单元格内容。 yii\grid\Column
$footerOptions array 页脚单元格标签的 HTML 属性。 yii\grid\Column
$grid yii\grid\GridView 拥有此列的网格视图对象。 yii\grid\Column
$header string|null 表头单元格内容。 yii\grid\Column
$headerOptions array 表头单元格标签的 HTML 属性。 yii\grid\Column
$options array 列组标签的 HTML 属性。 yii\grid\Column
$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
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\Column
renderDataCellContent() 渲染数据单元格内容。 yii\grid\Column
renderFilterCellContent() 渲染筛选单元格内容。 yii\grid\Column
renderFooterCellContent() 渲染页脚单元格内容。 yii\grid\Column
renderHeaderCellContent() 渲染表头单元格内容。 yii\grid\Column

属性详情

隐藏继承的属性

$content 公共属性

这是一个可调用对象,将用于生成每个单元格的内容。函数的签名应如下所示:function ($model, $key, $index, $column)。其中 $model$key$index 分别指代当前正在渲染的行对应的模型、键和索引,而 $column 是对 yii\grid\Column 对象的引用。

public callable $content null
$contentOptions 公共属性

数据单元格标签的 HTML 属性。这可以是一个属性数组,也可以是一个匿名函数(Closure),该函数返回这样的数组。函数的签名应如下所示:function ($model, $key, $index, $column)。其中 $model$key$index 分别指代当前正在渲染的行对应的模型、键和索引,而 $column 是对 yii\grid\Column 对象的引用。可以使用函数根据行中的数据为不同的行分配不同的属性。

另请参阅 yii\helpers\Html::renderTagAttributes(),了解属性如何呈现的详细信息。

$filterOptions 公共属性

筛选单元格标签的 HTML 属性。

另请参阅 yii\helpers\Html::renderTagAttributes(),了解属性如何呈现的详细信息。

public array $filterOptions = []
$footer 公共属性

页脚单元格内容。请注意,它不会进行 HTML 编码。

public string $footer null
$footerOptions 公共属性

页脚单元格标签的 HTML 属性。

另请参阅 yii\helpers\Html::renderTagAttributes(),了解属性如何呈现的详细信息。

public array $footerOptions = []
$grid 公共属性

拥有此列的网格视图对象。

public yii\grid\GridView $grid null
$header 公共属性

表头单元格内容。请注意,它不会进行 HTML 编码。

public string|null $header null
$headerOptions 公共属性

表头单元格标签的 HTML 属性。

另请参阅 yii\helpers\Html::renderTagAttributes(),了解属性如何呈现的详细信息。

public array $headerOptions = []
$options 公共属性

列组标签的 HTML 属性。

另请参阅 yii\helpers\Html::renderTagAttributes(),了解属性如何呈现的详细信息。

public array $options = []
$visible 公共属性

此列是否可见。默认为 true。

public boolean $visible true

方法详情

隐藏继承的方法

__call() 公共方法

定义于: yii\base\BaseObject::__call()

调用不是类方法的命名方法。

不要直接调用此方法,因为它是一个 PHP 魔术方法,当调用未知方法时会隐式调用。

public mixed __call ( $name, $params )
$name string

方法名

$params array

方法参数

返回值 mixed

方法返回值

抛出异常 yii\base\UnknownMethodException

调用未知方法时

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__construct() 公共方法

定义于: yii\base\BaseObject::__construct()

构造函数。

默认实现执行两件事

  • 使用给定的配置 $config 初始化对象。
  • 调用 init()

如果此方法在子类中被重写,建议

  • 构造函数的最后一个参数是一个配置数组,就像这里的 $config 一样。
  • 在构造函数的末尾调用父类的实现。
public void __construct ( $config = [] )
$config array

将用于初始化对象属性的键值对

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            
__get() 公共方法

定义于: yii\base\BaseObject::__get()

返回对象属性的值。

不要直接调用此方法,因为它是一个 PHP 魔术方法,当执行 $value = $object->property; 时会隐式调用。

另请参阅 __set()

public mixed __get ( $name )
$name string

属性名

返回值 mixed

属性值

抛出异常 yii\base\UnknownPropertyException

如果属性未定义

抛出异常 yii\base\InvalidCallException

如果属性是只写属性

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter();
    } elseif (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() 公共方法

定义于: yii\base\BaseObject::__isset()

检查属性是否已设置,即定义且不为 null。

不要直接调用此方法,因为它是一个 PHP 魔术方法,当执行 isset($object->property) 时会隐式调用。

请注意,如果属性未定义,则将返回 false。

另请参阅 https://php.ac.cn/manual/en/function.isset.php

public boolean __isset ( $name )
$name string

属性名或事件名

返回值 boolean

命名的属性是否已设置(非 null)。

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            
__set() 公共方法

定义于: yii\base\BaseObject::__set()

设置对象属性的值。

不要直接调用此方法,因为它是一个 PHP 魔术方法,当执行 $object->property = $value; 时会隐式调用。

另请参阅 __get()

public void __set ( $name, $value )
$name string

属性名或事件名

$value mixed

属性值

抛出异常 yii\base\UnknownPropertyException

如果属性未定义

抛出异常 yii\base\InvalidCallException

如果属性是只读属性

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            
__unset() 公共方法

定义于: yii\base\BaseObject::__unset()

将对象属性设置为 null。

不要直接调用此方法,因为它是一个 PHP 魔术方法,当执行 unset($object->property) 时会隐式调用。

请注意,如果属性未定义,则此方法将不执行任何操作。如果属性是只读属性,则会抛出异常。

另请参阅 https://php.ac.cn/manual/en/function.unset.php

public void __unset ( $name )
$name string

属性名

抛出异常 yii\base\InvalidCallException

如果属性是只读属性。

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            
canGetProperty() 公共方法

定义于: yii\base\BaseObject::canGetProperty()

返回一个值,指示是否可以读取属性。

如果满足以下条件,则属性可读:

  • 类具有与指定名称关联的 getter 方法(在本例中,属性名称不区分大小写);
  • 类具有与指定名称相同的成员变量(当 $checkVars 为 true 时);

另请参阅 canSetProperty()

public boolean canGetProperty ( $name, $checkVars true )
$name string

属性名

$checkVars boolean

是否将成员变量视为属性

返回值 boolean

属性是否可读

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            
canSetProperty() 公共方法

定义于: yii\base\BaseObject::canSetProperty()

返回一个值,指示是否可以设置属性。

如果满足以下条件,则属性可写:

  • 类具有与指定名称关联的 setter 方法(在本例中,属性名称不区分大小写);
  • 类具有与指定名称相同的成员变量(当 $checkVars 为 true 时);

另请参阅 canGetProperty()

public boolean canSetProperty ( $name, $checkVars true )
$name string

属性名

$checkVars boolean

是否将成员变量视为属性

返回值 boolean

属性是否可写

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

            
className() 公共静态方法
自 2.0.14 版本起已弃用。在 PHP >=5.5 中,请改用 ::class

定义于: yii\base\BaseObject::className()

返回此类的完全限定名称。

public static string className ( )
返回值 string

此类的完全限定名称。

                public static function className()
{
    return get_called_class();
}

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

返回表头单元格标签。

可以重写此方法以自定义表头单元格的标签。

protected string getHeaderCellLabel ( )
返回值 string

标签

                protected function getHeaderCellLabel()
{
    return $this->grid->emptyCell;
}

            
hasMethod() 公共方法

定义于: yii\base\BaseObject::hasMethod()

返回一个值,指示方法是否已定义。

默认实现是调用 php 函数 method_exists()。当您实现 php 魔术方法 __call() 时,您可以重写此方法。

public boolean hasMethod ( $name )
$name string

方法名

返回值 boolean

方法是否已定义

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            
hasProperty() 公共方法

定义于: yii\base\BaseObject::hasProperty()

返回一个值,指示属性是否已定义。

如果满足以下条件,则属性已定义:

  • 类具有与指定名称关联的 getter 或 setter 方法(在本例中,属性名称不区分大小写);
  • 类具有与指定名称相同的成员变量(当 $checkVars 为 true 时);

另请参阅

public boolean hasProperty ( $name, $checkVars true )
$name string

属性名

$checkVars boolean

是否将成员变量视为属性

返回值 boolean

属性是否已定义

                public function hasProperty($name, $checkVars = true)
{
    return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}

            
init() 公共方法

定义于: yii\base\BaseObject::init()

初始化对象。

此方法在构造函数结束时调用,在对象使用给定配置初始化之后调用。

public void init ( )

                public function init()
{
}

            
renderDataCell() 公共方法

渲染数据单元格。

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

正在渲染的数据模型

$key mixed

与数据模型关联的键

$index 整数

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

返回值 string

渲染结果

                public function renderDataCell($model, $key, $index)
{
    if ($this->contentOptions instanceof Closure) {
        $options = call_user_func($this->contentOptions, $model, $key, $index, $this);
    } else {
        $options = $this->contentOptions;
    }
    return Html::tag('td', $this->renderDataCellContent($model, $key, $index), $options);
}

            
renderDataCellContent() 受保护方法

渲染数据单元格内容。

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

数据模型

$key mixed

与数据模型关联的键

$index 整数

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

返回值 string

渲染结果

                protected function renderDataCellContent($model, $key, $index)
{
    if ($this->content !== null) {
        return call_user_func($this->content, $model, $key, $index, $this);
    }
    return $this->grid->emptyCell;
}

            
renderFilterCell() 公共方法

渲染筛选单元格。

public void renderFilterCell ( )

                public function renderFilterCell()
{
    return Html::tag('td', $this->renderFilterCellContent(), $this->filterOptions);
}

            
renderFilterCellContent() 受保护方法

渲染筛选单元格内容。

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

protected string renderFilterCellContent ( )
返回值 string

渲染结果

                protected function renderFilterCellContent()
{
    return $this->grid->emptyCell;
}

            
renderFooterCell() 公共方法

渲染页脚单元格。

public void renderFooterCell ( )

                public function renderFooterCell()
{
    return Html::tag('td', $this->renderFooterCellContent(), $this->footerOptions);
}

            
renderFooterCellContent() 受保护方法

渲染页脚单元格内容。

默认实现简单地渲染 $footer。可以重写此方法来自定义页脚单元格的渲染。

protected string renderFooterCellContent ( )
返回值 string

渲染结果

                protected function renderFooterCellContent()
{
    return $this->footer !== null && trim($this->footer) !== '' ? $this->footer : $this->grid->emptyCell;
}

            
renderHeaderCell() 公共方法

渲染表头单元格。

public void renderHeaderCell ( )

                public function renderHeaderCell()
{
    return Html::tag('th', $this->renderHeaderCellContent(), $this->headerOptions);
}

            
renderHeaderCellContent() 受保护方法

渲染表头单元格内容。

默认实现简单地渲染 $header。可以重写此方法来自定义表头单元格的渲染。

protected string renderHeaderCellContent ( )
返回值 string

渲染结果

                protected function renderHeaderCellContent()
{
    return $this->header !== null && trim($this->header) !== '' ? $this->header : $this->getHeaderCellLabel();
}