0 关注者

类 yii\grid\CheckboxColumn

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

CheckboxColumn 在网格视图中显示复选框列。

要将 CheckboxColumn 添加到 yii\grid\GridView,请将其添加到 columns 配置中,如下所示

'columns' => [
    // ...
    [
        'class' => 'yii\grid\CheckboxColumn',
        // you may configure additional properties here
    ],
]

用户可以单击复选框以选择网格的行。可以通过调用以下 JavaScript 代码来获取选定的行

var keys = $('#grid').yiiGridView('getSelectedRows');
// keys is an array consisting of the keys associated with the selected rows

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

公共属性

隐藏继承的属性

属性 类型 描述 定义于
$checkboxOptions 数组|闭包 复选框的 HTML 属性。 yii\grid\CheckboxColumn
$content 可调用 这是一个可调用对象,将用于生成每个单元格的内容。 yii\grid\Column
$contentOptions 数组|闭包 数据单元格标签的 HTML 属性。 yii\grid\Column
$cssClass 字符串 将用于查找复选框的 CSS 类。 yii\grid\CheckboxColumn
$filterOptions 数组 筛选单元格标签的 HTML 属性。 yii\grid\Column
$footer 字符串 页脚单元格内容。 yii\grid\Column
$footerOptions 数组 页脚单元格标签的 HTML 属性。 yii\grid\Column
$grid yii\grid\GridView 拥有此列的网格视图对象。 yii\grid\Column
$header 字符串| 页眉单元格内容。 yii\grid\Column
$headerOptions 数组 页眉单元格标签的 HTML 属性。 yii\grid\Column
$multiple 布尔值 是否可以选择多行。 yii\grid\CheckboxColumn
$name 字符串 输入复选框输入字段的名称。 yii\grid\CheckboxColumn
$options 数组 列组标签的 HTML 属性。 yii\grid\Column
$visible 布尔值 此列是否可见。 yii\grid\Column

公共方法

隐藏继承的方法

方法 描述 定义于
__call() 调用不是类方法的命名方法。 yii\base\BaseObject
__construct() 构造函数。 yii\base\BaseObject
__get() 返回对象属性的值。 yii\base\BaseObject
__isset() 检查属性是否已设置,即已定义且不为空。 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\grid\CheckboxColumn
registerClientScript() 注册所需的 JavaScript。 yii\grid\CheckboxColumn
renderDataCell() 渲染数据单元格。 yii\grid\Column
renderFilterCell() 渲染筛选单元格。 yii\grid\Column
renderFooterCell() 渲染页脚单元格。 yii\grid\Column
renderHeaderCell() 渲染页眉单元格。 yii\grid\Column

受保护的方法

隐藏继承的方法

方法 描述 定义于
getHeaderCellLabel() 返回页眉单元格标签。 yii\grid\Column
getHeaderCheckBoxName() 返回页眉复选框名称。 yii\grid\CheckboxColumn
renderDataCellContent() 渲染数据单元格内容。 yii\grid\CheckboxColumn
renderFilterCellContent() 渲染筛选单元格内容。 yii\grid\Column
renderFooterCellContent() 渲染页脚单元格内容。 yii\grid\Column
renderHeaderCellContent() 渲染页眉单元格内容。 yii\grid\CheckboxColumn

属性详细信息

隐藏继承的属性

$checkboxOptions 公共属性

复选框的 HTML 属性。 这可以是一个属性数组或一个匿名函数 (闭包),该函数返回这样一个数组。 函数的签名应如下所示:function ($model, $key, $index, $column)。 其中 $model$key$index 指的是当前正在渲染的行模型、键和索引,$column 是对 yii\grid\CheckboxColumn 对象的引用。 函数可用于根据该行中的数据向不同的行分配不同的属性。 具体来说,如果您想为复选框设置不同的值,则可以使用以下方式使用此选项(在此示例中使用模型的 name 属性)

'checkboxOptions' => function ($model, $key, $index, $column) {
    return ['value' => $model->name];
}

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

$cssClass 公共属性(从版本 2.0.9 开始可用)

将用于查找复选框的 CSS 类。

public 字符串 $cssClass null
$multiple 公共属性

是否可以选择多行。 默认值为 true

public 布尔值 $multiple true
$name 公共属性

输入复选框输入字段的名称。这将附加 [] 以确保它是一个数组。

public string $name 'selection'

方法详情

隐藏继承的方法

__call() 公共方法

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

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

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

public mixed __call ( $name, $params )
$name 字符串

方法名称

$params 数组

方法参数

return mixed

方法返回值

throws 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 数组

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

                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 字符串

属性名称

return mixed

属性值

throws yii\base\UnknownPropertyException

如果属性未定义

throws 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()

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

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

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

另见 https://php.ac.cn/manual/en/function.isset.php.

public boolean __isset ( $name )
$name 字符串

属性名称或事件名称

return 布尔值

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

                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 字符串

属性名称或事件名称

$value mixed

属性值

throws yii\base\UnknownPropertyException

如果属性未定义

throws 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 字符串

属性名称

throws 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 字符串

属性名称

$checkVars 布尔值

是否将成员变量视为属性

return 布尔值

属性是否可读

                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 字符串

属性名称

$checkVars 布尔值

是否将成员变量视为属性

return 布尔值

属性是否可写

                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 ( )
return 字符串

此类的完全限定名称。

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

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

定义于: yii\grid\Column::getHeaderCellLabel()

返回页眉单元格标签。

此方法可以被覆盖以自定义表头单元格的标签。

protected string getHeaderCellLabel ( )
return 字符串

标签

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

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

返回页眉复选框名称。

受保护 字符串 getHeaderCheckBoxName ( )
return 字符串

标题复选框名称

                protected function getHeaderCheckBoxName()
{
    $name = $this->name;
    if (substr_compare($name, '[]', -2, 2) === 0) {
        $name = substr($name, 0, -2);
    }
    if (substr_compare($name, ']', -1, 1) === 0) {
        $name = substr($name, 0, -1) . '_all]';
    } else {
        $name .= '_all';
    }
    return $name;
}

            
hasMethod() 公共方法

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

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

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

公共 布尔值 hasMethod ( $name )
$name 字符串

方法名称

return 布尔值

方法是否已定义

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

            
hasProperty() 公共方法

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

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

属性定义在以下情况:

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

另见

公共 布尔值 hasProperty ( $name, $checkVars true )
$name 字符串

属性名称

$checkVars 布尔值

是否将成员变量视为属性

return 布尔值

属性是否已定义

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

            
init() 公共方法

初始化对象。

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

公共 void init ( )
throws yii\base\InvalidConfigException

如果 $name 未设置。

                public function init()
{
    parent::init();
    if (empty($this->name)) {
        throw new InvalidConfigException('The "name" property must be set.');
    }
    if (substr_compare($this->name, '[]', -2, 2)) {
        $this->name .= '[]';
    }
    $this->registerClientScript();
}

            
registerClientScript() 公共方法 (自版本 2.0.8 起可用)

注册所需的 JavaScript。

公共 void registerClientScript ( )

                public function registerClientScript()
{
    $id = $this->grid->options['id'];
    $options = Json::encode([
        'name' => $this->name,
        'class' => $this->cssClass,
        'multiple' => $this->multiple,
        'checkAll' => $this->grid->showHeader ? $this->getHeaderCheckBoxName() : null,
    ]);
    $this->grid->getView()->registerJs("jQuery('#$id').yiiGridView('setSelectionColumn', $options);");
}

            
renderDataCell() 公共方法

定义于: yii\grid\Column::renderDataCell()

渲染数据单元格。

公共 字符串 renderDataCell ( $model, $key, $index )
$model mixed

正在渲染的数据模型

$key mixed

与数据模型关联的键

$index 整数

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

return 字符串

渲染结果

                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() 受保护方法

渲染数据单元格内容。

受保护 字符串 renderDataCellContent ( $model, $key, $index )
$model mixed

数据模型

$key mixed

与数据模型关联的键

$index 整数

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

return 字符串

渲染结果

                protected function renderDataCellContent($model, $key, $index)
{
    if ($this->content !== null) {
        return parent::renderDataCellContent($model, $key, $index);
    }
    if ($this->checkboxOptions instanceof Closure) {
        $options = call_user_func($this->checkboxOptions, $model, $key, $index, $this);
    } else {
        $options = $this->checkboxOptions;
    }
    if (!isset($options['value'])) {
        $options['value'] = is_array($key) ? Json::encode($key) : $key;
    }
    if ($this->cssClass !== null) {
        Html::addCssClass($options, $this->cssClass);
    }
    return Html::checkbox($this->name, !empty($options['checked']), $options);
}

            
renderFilterCell() 公共方法

定义于: yii\grid\Column::renderFilterCell()

渲染筛选单元格。

公共 void renderFilterCell ( )

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

            
renderFilterCellContent() 受保护方法

定义于: yii\grid\Column::renderFilterCellContent()

渲染筛选单元格内容。

默认实现仅渲染一个空格。可以覆盖此方法以自定义筛选器单元格(如果有)的渲染。

受保护 字符串 renderFilterCellContent ( )
return 字符串

渲染结果

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

            
renderFooterCell() 公共方法

定义于: yii\grid\Column::renderFooterCell()

渲染页脚单元格。

公共 void renderFooterCell ( )

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

            
renderFooterCellContent() 受保护方法

定义于: yii\grid\Column::renderFooterCellContent()

渲染页脚单元格内容。

默认实现仅渲染 $footer。可以覆盖此方法以自定义页脚单元格的渲染。

受保护 字符串 renderFooterCellContent ( )
return 字符串

渲染结果

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

            
renderHeaderCell() 公共方法

定义于: yii\grid\Column::renderHeaderCell()

渲染页眉单元格。

公共 void renderHeaderCell ( )

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

            
renderHeaderCellContent() 受保护方法

渲染页眉单元格内容。

默认实现仅渲染 $header。可以覆盖此方法以自定义表头单元格的渲染。

受保护的 字符串 renderHeaderCellContent ( )
return 字符串

渲染结果

                protected function renderHeaderCellContent()
{
    if ($this->header !== null || !$this->multiple) {
        return parent::renderHeaderCellContent();
    }
    return Html::checkbox($this->getHeaderCheckBoxName(), false, ['class' => 'select-on-check-all']);
}