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 は、グリッドビューにチェックボックスの列を表示します。

yii\grid\GridView に CheckboxColumn を追加するには、以下のように 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 callable 各セルのコンテンツを生成するために使用されるcallableです。 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 文字列|null ヘッダーセルのコンテンツ。 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() プロパティが設定されているかどうか(つまり、定義されていて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\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 public property

チェックボックスのHTML属性。これは、属性の配列、またはそのような配列を返す無名関数(クロージャ)のいずれかです。関数のシグネチャは次のようになります。function ($model, $key, $index, $column)。ここで、$model$key$indexは、現在レンダリングされている行のモデル、キー、インデックスを参照し、$columnyii\grid\CheckboxColumnオブジェクトへの参照です。関数は、その行のデータに基づいて異なる行に異なる属性を割り当てるために使用できます。具体的には、チェックボックスに異なる値を設定する場合は、次の方法でこのオプションを使用できます(この例では、モデルのname属性を使用しています)。

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

属性のレンダリング方法の詳細については、yii\helpers\Html::renderTagAttributes()も参照してください。

$cssClass public property (バージョン2.0.9以降で使用可能)

チェックボックスを見つけるために使用されるCSSクラス。

public string $cssClass null
$multiple public property

複数行を選択できるかどうか。デフォルトはtrue

public boolean $multiple true
$name public property

入力チェックボックス入力フィールドの名前。配列であることを保証するために[]が追加されます。

public string $name 'selection'

メソッドの詳細

継承されたメソッドを非表示

__call() public method

定義済み: yii\base\BaseObject::__call()

クラスメソッドではない名前付きメソッドを呼び出します。

これはPHPのマジックメソッドであり、不明なメソッドが呼び出された場合に暗黙的に呼び出されるため、直接呼び出さないでください。

public mixed __call ( $name, $params )
$name 文字列

メソッド名

$params 配列

メソッドパラメータ

戻り値 mixed

メソッドの戻り値

例外 yii\base\UnknownMethodException

不明なメソッドを呼び出した場合

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

            
__construct() public method

定義済み: yii\base\BaseObject::__construct()

コンストラクター。

デフォルトの実装は2つのことを行います。

  • 与えられた設定$configを使用してオブジェクトを初期化します。
  • init()を呼び出します。

このメソッドを子クラスでオーバーライドする場合は、

  • コンストラクタの最後の引数を、ここにある$configのような設定配列にすることをお勧めします。
  • コンストラクタの最後に親の実装を呼び出します。
public void __construct ( $config = [] )
$config 配列

オブジェクトのプロパティを初期化するために使用される名前と値のペア

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

            
__get() public method

定義済み: yii\base\BaseObject::__get()

オブジェクトプロパティの値を返します。

これはPHPのマジックメソッドであり、$value = $object->property;を実行したときに暗黙的に呼び出されるため、直接呼び出さないでください。

__set()も参照してください。

public mixed __get ( $name )
$name 文字列

プロパティ名

戻り値 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() public method

定義済み: yii\base\BaseObject::__isset()

プロパティが設定されているかどうか(つまり、定義されていてnullではない)を確認します。

これはPHPのマジックメソッドであり、isset($object->property)を実行したときに暗黙的に呼び出されるため、直接呼び出さないでください。

プロパティが定義されていない場合、falseが返されることに注意してください。

https://www.php.net/manual/en/function.isset.phpも参照してください。

public boolean __isset ( $name )
$name 文字列

プロパティ名またはイベント名

戻り値 ブール値

指定されたプロパティが設定されているかどうか(nullではない)。

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

            
__set() public method

定義済み: yii\base\BaseObject::__set()

オブジェクトプロパティの値を設定します。

これはPHPのマジックメソッドであり、$object->property = $value;を実行したときに暗黙的に呼び出されるため、直接呼び出さないでください。

__get()も参照してください。

public void __set ( $name, $value )
$name 文字列

プロパティ名またはイベント名

$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() public method

定義済み: yii\base\BaseObject::__unset()

オブジェクトプロパティをnullに設定します。

これはPHPのマジックメソッドであり、unset($object->property)を実行したときに暗黙的に呼び出されるため、直接呼び出さないでください。

プロパティが定義されていない場合、このメソッドは何もしません。プロパティが読み取り専用の場合は、例外をスローします。

https://www.php.net/manual/en/function.unset.phpも参照してください。

public void __unset ( $name )
$name 文字列

プロパティ名

例外 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() public method

定義済み: yii\base\BaseObject::canGetProperty()

プロパティを読み取ることができるかどうかを示す値を返します。

プロパティは、以下の場合に読み取り可能です。

  • クラスに、指定された名前(この場合、プロパティ名は大文字と小文字が区別されません)に関連付けられたゲッターメソッドがある場合。
  • クラスに、指定された名前のメンバ変数がある場合($checkVarsがtrueの場合)。

canSetProperty()も参照してください。

public boolean canGetProperty ( $name, $checkVars true )
$name 文字列

プロパティ名

$checkVars ブール値

メンバ変数をプロパティとして扱うかどうか

戻り値 ブール値

プロパティを読み取ることができるかどうか

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

            
canSetProperty() publicメソッド

定義位置: yii\base\BaseObject::canSetProperty()

プロパティを設定できるかどうかを示す値を返します。

プロパティは、以下の場合に書き込み可能です。

  • 指定された名前(この場合、プロパティ名はケースインセンシティブです)に関連付けられたセッターメソッドがクラスに存在する場合。
  • クラスに、指定された名前のメンバ変数がある場合($checkVarsがtrueの場合)。

参照: canGetProperty().

public boolean canSetProperty ( $name, $checkVars true )
$name 文字列

プロパティ名

$checkVars ブール値

メンバ変数をプロパティとして扱うかどうか

戻り値 ブール値

プロパティを書き込むことができるかどうか

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

            
className() public staticメソッド
2.0.14以降非推奨。PHP >= 5.5では、代わりに::classを使用してください。

定義位置: yii\base\BaseObject::className()

このクラスの完全修飾名を返します。

public static string className ( )
戻り値 文字列

このクラスの完全修飾名。

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

            
getHeaderCellLabel() protectedメソッド (バージョン2.0.8から利用可能)

定義位置: yii\grid\Column::getHeaderCellLabel()

ヘッダーセルのラベルを返します。

このメソッドは、ヘッダーセルのラベルをカスタマイズするためにオーバーライドできます。

protected string getHeaderCellLabel ( )
戻り値 文字列

ラベル

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

            
getHeaderCheckBoxName() protectedメソッド (バージョン2.0.8から利用可能)

ヘッダーチェックボックスの名前を返します。

protected string getHeaderCheckBoxName ( )
戻り値 文字列

ヘッダーチェックボックス名

                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() publicメソッド

定義位置: yii\base\BaseObject::hasMethod()

メソッドが定義されているかどうかを示す値を返します。

デフォルトの実装は、PHP関数method_exists()の呼び出しです。PHPマジックメソッド__call()を実装した場合は、このメソッドをオーバーライドできます。

public boolean hasMethod ( $name )
$name 文字列

メソッド名

戻り値 ブール値

メソッドが定義されているかどうか

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

            
hasProperty() publicメソッド

定義位置: yii\base\BaseObject::hasProperty()

プロパティが定義されているかどうかを示す値を返します。

プロパティは、以下の場合に定義されています。

  • 指定された名前(この場合、プロパティ名はケースインセンシティブです)に関連付けられたゲッターまたはセッターメソッドがクラスに存在する場合。
  • クラスに、指定された名前のメンバ変数がある場合($checkVarsがtrueの場合)。

参照:

public boolean hasProperty ( $name, $checkVars true )
$name 文字列

プロパティ名

$checkVars ブール値

メンバ変数をプロパティとして扱うかどうか

戻り値 ブール値

プロパティが定義されているかどうか

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

            
init() publicメソッド

オブジェクトを初期化します。

このメソッドは、オブジェクトが指定された構成で初期化された後、コンストラクタの最後に呼び出されます。

public void init ( )
例外 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() publicメソッド (バージョン2.0.8から利用可能)

必要なJavaScriptを登録します。

public 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() publicメソッド

定義位置: yii\grid\Column::renderDataCell()

データセルをレンダリングします。

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

レンダリングされるデータモデル

$key mixed

データモデルに関連付けられたキー

$index 整数

yii\grid\GridView::$dataProviderによって返されるアイテム配列における、データアイテムのゼロベースインデックス。

戻り値 文字列

レンダリング結果

                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メソッド

データセルのコンテンツをレンダリングします。

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

データモデル

$key mixed

データモデルに関連付けられたキー

$index 整数

yii\grid\GridView::$dataProviderによって返されるモデル配列における、データモデルのゼロベースインデックス。

戻り値 文字列

レンダリング結果

                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() publicメソッド

定義位置: yii\grid\Column::renderFilterCell()

フィルターセルをレンダリングします。

public void renderFilterCell ( )

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

            
renderFilterCellContent() protectedメソッド

定義先: yii\grid\Column::renderFilterCellContent()

フィルターセルのコンテンツをレンダリングします。

デフォルトの実装では、単にスペースをレンダリングします。このメソッドをオーバーライドして、フィルターセルのレンダリング(存在する場合)をカスタマイズできます。

protected string renderFilterCellContent ( )
戻り値 文字列

レンダリング結果

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

            
renderFooterCell() publicメソッド

定義先: yii\grid\Column::renderFooterCell()

フッターセルをレンダリングします。

public void renderFooterCell ( )

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

            
renderFooterCellContent() protectedメソッド

定義先: yii\grid\Column::renderFooterCellContent()

フッターセルのコンテンツをレンダリングします。

デフォルトの実装では、単に$footerをレンダリングします。このメソッドをオーバーライドして、フッターセルのレンダリングをカスタマイズできます。

protected string renderFooterCellContent ( )
戻り値 文字列

レンダリング結果

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

            
renderHeaderCell() publicメソッド

定義先: yii\grid\Column::renderHeaderCell()

ヘッダーセルをレンダリングします。

public void renderHeaderCell ( )

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

            
renderHeaderCellContent() protectedメソッド

ヘッダーセルのコンテンツをレンダリングします。

デフォルトの実装では、単に$headerをレンダリングします。このメソッドをオーバーライドして、ヘッダーセルのレンダリングをカスタマイズできます。

protected string renderHeaderCellContent ( )
戻り値 文字列

レンダリング結果

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