0 フォロワー

クラス yii\grid\GridView

継承yii\grid\GridView » yii\widgets\BaseListView » yii\base\Widget » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurable, yii\base\ViewContextInterface
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/grid/GridView.php

GridView ウィジェットは、データをグリッド形式で表示するために使用されます。

データのソートページングフィルタリングなどの機能を提供します。

基本的な使い方は次のとおりです。

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'columns' => [
        'id',
        'name',
        'created_at:datetime',
        // ...
    ],
]) ?>

グリッドテーブルのカラムは、yii\grid\Columnクラスで構成され、$columnsを介して設定されます。

グリッドビューのルックアンドフィールは、多数のプロパティを使用してカスタマイズできます。

GridViewの詳細と使用方法については、データウィジェットに関するガイド記事を参照してください。

公開プロパティ

継承されたプロパティを非表示

プロパティ 説明 定義元
$afterRow クロージャ 各データモデルのレンダリング後に1回呼び出される無名関数です。 yii\grid\GridView
$autoIdPrefix 文字列 自動生成されたウィジェットIDへのプレフィックスです。 yii\base\Widget
$beforeRow クロージャ 各データモデルのレンダリング前に1回呼び出される無名関数です。 yii\grid\GridView
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされている動作のリストです。 yii\base\Component
$caption 文字列 グリッドテーブルのキャプション yii\grid\GridView
$captionOptions 配列 キャプション要素のHTML属性です。 yii\grid\GridView
$columns 配列 グリッドカラムの設定です。 yii\grid\GridView
$dataColumnClass 文字列 データカラムの設定時にクラス名が明示的に指定されていない場合のデフォルトのデータカラムクラスです。 yii\grid\GridView
$dataProvider yii\data\DataProviderInterface ビューのデータプロバイダーです。 yii\widgets\BaseListView
$emptyCell 文字列 セルのコンテンツが空の場合のHTML表示です。 yii\grid\GridView
$emptyText 文字列|false $dataProviderにデータがない場合に表示されるHTMLコンテンツです。 yii\widgets\BaseListView
$emptyTextOptions 配列 リストビューのemptyTextのHTML属性です。 yii\widgets\BaseListView
$filterErrorOptions 配列 各フィルターエラーメッセージのレンダリングオプションです。 yii\grid\GridView
$filterErrorSummaryOptions 配列 フィルターエラーサマリーのレンダリングオプションです。 yii\grid\GridView
$filterModel yii\base\Model|null ユーザーが入力したフィルターデータを保持するモデルです。 yii\grid\GridView
$filterOnFocusOut boolean フォーカスを失ったときにフィルターを適用するかどうか。 yii\grid\GridView
$filterPosition 文字列 グリッドビューにフィルターを表示するかどうか。 yii\grid\GridView
$filterRowOptions 配列 フィルター行要素のHTML属性です。 yii\grid\GridView
$filterSelector 文字列 フィルター入力フィールドを選択するための追加のjQueryセレクター。 yii\grid\GridView
$filterUrl 文字列|配列|null フィルタリングの結果を返すURLです。 yii\grid\GridView
$footerRowOptions 配列 テーブルフッター行のHTML属性です。 yii\grid\GridView
$formatter 配列|yii\i18n\Formatter|null モデル属性値を表示可能なテキストにフォーマットするために使用されるフォーマッターです。 yii\grid\GridView
$headerRowOptions 配列 テーブルヘッダー行のHTML属性です。 yii\grid\GridView
$id 文字列|null ウィジェットのIDです。 yii\base\Widget
$layout 文字列 グリッドビューの異なるセクションをどのように構成するべきかを決定するレイアウトです。 yii\grid\GridView
$options 配列 グリッドビューのコンテナタグのHTML属性です。 yii\grid\GridView
$pager 配列 ページャーウィジェットの設定です。 yii\widgets\BaseListView
$placeFooterAfterBody boolean $showFooterがtrueの場合、DOMでフッターをボディの後に配置するかどうか。 yii\grid\GridView
$rowOptions 配列|クロージャ テーブルボディ行のHTML属性です。 yii\grid\GridView
$showFooter boolean グリッドテーブルのフッターセクションを表示するかどうか。 yii\grid\GridView
$showHeader boolean グリッドテーブルのヘッダーセクションを表示するかどうか。 yii\grid\GridView
$showOnEmpty boolean $dataProviderがデータなしを返す場合にグリッドビューを表示するかどうか。 yii\grid\GridView
$sorter 配列 ソーターウィジェットの設定です。 yii\widgets\BaseListView
$summary 文字列 リストビューのサマリーとして表示されるHTMLコンテンツ。 yii\widgets\BaseListView
$summaryOptions 配列 リストビューのサマリーのHTML属性。 yii\widgets\BaseListView
$tableOptions 配列 グリッドテーブル要素のHTML属性。 yii\grid\GridView
$view yii\web\View ビューやビューファイルをレンダリングするために使用できるビューオブジェクト。 yii\base\Widget
$viewPath 文字列 このウィジェットのビューファイルを含むディレクトリ。 yii\base\Widget

公開メソッド

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

メソッド 説明 定義元
__call() クラスメソッドではない、指定された名前のメソッドを呼び出します。 yii\base\Component
__clone() 既存のオブジェクトを複製してオブジェクトが作成された後に、このメソッドが呼び出されます。 yii\base\Component
__construct() コンストラクタ。 yii\base\BaseObject
__get() コンポーネントプロパティの値を返します。 yii\base\Component
__isset() プロパティが設定されているかどうか(定義されていてnullではない)を確認します。 yii\base\Component
__set() コンポーネントプロパティの値を設定します。 yii\base\Component
__unset() コンポーネントプロパティをnullに設定します。 yii\base\Component
afterRun() ウィジェットが実行された直後に、このメソッドが呼び出されます。 yii\base\Widget
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
beforeRun() ウィジェットが実行される直前に、このメソッドが呼び出されます。 yii\base\Widget
begin() ウィジェットを開始します。 yii\base\Widget
behaviors() このコンポーネントが持つべきビヘイビアのリストを返します。 yii\base\Component
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
end() ウィジェットを終了します。 yii\base\Widget
ensureBehaviors() behaviors()で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
getBehavior() 指定された名前のビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
getId() ウィジェットのIDを返します。 yii\base\Widget
getView() ビューやビューファイルをレンダリングするために使用できるビューオブジェクトを返します。 yii\base\Widget
getViewPath() このウィジェットのビューファイルを含むディレクトリを返します。 yii\base\Widget
hasEventHandlers() 指定されたイベントにハンドラがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() グリッドビューを初期化します。 yii\grid\GridView
off() このコンポーネントから既存のイベントハンドラをデタッチします。 yii\base\Component
on() イベントにイベントハンドラをアタッチします。 yii\base\Component
render() ビューをレンダリングします。 yii\base\Widget
renderCaption() キャプション要素をレンダリングします。 yii\grid\GridView
renderColumnGroup() 列グループのHTMLをレンダリングします。 yii\grid\GridView
renderEmpty() リストビューにデータがないことを示すHTMLコンテンツをレンダリングします。 yii\widgets\BaseListView
renderErrors() フィルタモデルのバリデータエラーをレンダリングします。 yii\grid\GridView
renderFile() ビューファイルをレンダリングします。 yii\base\Widget
renderFilters() フィルタをレンダリングします。 yii\grid\GridView
renderItems() グリッドビューのデータモデルをレンダリングします。 yii\grid\GridView
renderPager() ページャをレンダリングします。 yii\widgets\BaseListView
renderSection() 指定された名前のセクションをレンダリングします。 yii\grid\GridView
renderSorter() ソーターをレンダリングします。 yii\widgets\BaseListView
renderSummary() サマリーテキストをレンダリングします。 yii\widgets\BaseListView
renderTableBody() テーブルボディをレンダリングします。 yii\grid\GridView
renderTableFooter() テーブルフッターをレンダリングします。 yii\grid\GridView
renderTableHeader() テーブルヘッダーをレンダリングします。 yii\grid\GridView
renderTableRow() 指定されたデータモデルとキーを使用してテーブル行をレンダリングします。 yii\grid\GridView
run() ウィジェットを実行します。 yii\grid\GridView
setId() ウィジェットのIDを設定します。 yii\base\Widget
setView() このウィジェットで使用されるビューオブジェクトを設定します。 yii\base\Widget
trigger() イベントをトリガーします。 yii\base\Component
widget() ウィジェットインスタンスを作成して実行します。 yii\base\Widget

保護されたメソッド

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

メソッド 説明 定義元
createDataColumn() "attribute:format:label"形式の文字列に基づいて、yii\grid\DataColumnオブジェクトを作成します。 yii\grid\GridView
getClientOptions() グリッドビューJSウィジェットのオプションを返します。 yii\grid\GridView
guessColumns() $columnsが明示的に指定されていない場合、この関数は指定されたデータから表示する列を推測しようとします。 yii\grid\GridView
initColumns() 列オブジェクトを作成して初期化します。 yii\grid\GridView

イベント

継承されたイベントを非表示

イベント 説明 定義元
EVENT_AFTER_RUN yii\base\WidgetEvent ウィジェットを実行した直後に発生するイベント。(バージョン2.0.11以降で使用可能) yii\base\Widget
EVENT_BEFORE_RUN yii\base\WidgetEvent ウィジェットを実行する直前に発生するイベント。(バージョン2.0.11以降で使用可能) yii\base\Widget
EVENT_INIT yii\base\Event init()を介してウィジェットが初期化されたときにトリガーされるイベント。(バージョン2.0.11以降で使用可能) yii\base\Widget

定数

継承された定数を非表示

定数 説明 定義元
FILTER_POS_BODY 'body' yii\grid\GridView
FILTER_POS_HEADER 'header' yii\grid\GridView

プロパティの詳細

継承されたプロパティを非表示

$afterRow public property

各データモデルのレンダリング後、一度呼び出される無名関数です。$rowOptionsと同様のシグネチャが必要です。関数の戻り値は直接レンダリングされます。

public Closure $afterRow null
$beforeRow public property

各データモデルのレンダリング前、一度呼び出される無名関数です。$rowOptionsと同様のシグネチャが必要です。関数の戻り値は直接レンダリングされます。

public Closure $beforeRow null
$caption public property

グリッドテーブルのキャプション

$captionOptionsも参照してください。

public string $caption null
$captionOptions public property

キャプション要素のHTML属性です。

こちらも参照してください

public array $captionOptions = []
$columns public property

グリッド列の設定。各配列要素は、特定のグリッド列の設定を表します。例えば、

[
    ['class' => SerialColumn::class],
    [
        'class' => DataColumn::class, // this line is optional
        'attribute' => 'name',
        'format' => 'text',
        'label' => 'Name',
    ],
    ['class' => CheckboxColumn::class],
]

列がyii\grid\DataColumnクラスの場合、「class」要素は省略できます。

ショートカット形式として、文字列を使用して、attributeformat、および/またはlabelオプションのみを含むデータ列の設定を指定できます。「attribute:format:label」。例えば、上記の「name」列は次のように指定することもできます。「name:text:Name」。「format」と「label」はどちらもオプションです。存在しない場合はデフォルト値が使用されます。

ショートカット形式を使用すると、単純なケースの列の設定は次のようになります。

[
    'id',
    'amount:currency:Total Amount',
    'created_at:datetime',
]

アクティブレコードで$dataProviderを使用する場合、関連レコードの値も表示できます。たとえば、authorリレーションのname属性などです。

// shortcut syntax
'author.name',
// full syntax
[
    'attribute' => 'author.name',
    // ...
]
public array $columns = []
$dataColumnClass public property

データ列の構成時にクラス名が明示的に指定されていない場合のデフォルトのデータ列クラスです。デフォルトは'yii\grid\DataColumn'です。

public string $dataColumnClass null
$emptyCell public property

セルのコンテンツが空の場合のHTML表示です。このプロパティは、定義されたコンテンツがないセル(空のフッターやフィルターセルなど)のレンダリングに使用されます。

データ項目がnullの場合、これはyii\grid\DataColumnでは使用されないことに注意してください。その場合、空のデータ値を示すためにnullDisplayプロパティが$formatterで使用されます。

public string $emptyCell '&nbsp;'
$filterErrorOptions public property

各フィルターエラーメッセージのレンダリングのためのオプションです。これは主に、各フィルター入力フィールドの横にエラーメッセージをレンダリングする場合にyii\helpers\Html::error()で使用されます。

public array $filterErrorOptions = [
    
'class' => 'help-block',
]
$filterErrorSummaryOptions public property

フィルターエラーサマリーのレンダリングのためのオプションです。オプションの指定方法の詳細については、yii\helpers\Html::errorSummary()を参照してください。

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

public array $filterErrorSummaryOptions = [
    
'class' => 'error-summary',
]
$filterModel public property

ユーザーが入力したフィルターデータを保持するモデルです。このプロパティが設定されている場合、グリッドビューは列ベースのフィルタリングを有効にします。各データ列は、デフォルトで、ユーザーがデータをフィルタリングするために記入できるテキストフィールドを上部に表示します。

フィルタリングのための入力フィールドを表示するには、列のyii\grid\DataColumn::$attributeプロパティを設定する必要があり、その属性は$filterModelの現在のシナリオでアクティブであるか、yii\grid\DataColumn::$filterが入力フィールドのHTMLコードとして設定されている必要があります。

このプロパティが設定されていない(null)場合、フィルタリング機能は無効になります。

$filterOnFocusOut public property (version 2.0.16から利用可能)

フォーカスを失ったときにフィルターを適用するかどうかです。yiiGridView JSを介してフィルターを管理する機能を残します。

public boolean $filterOnFocusOut true
$filterPosition public property

フィルターをグリッドビューに表示するかどうかです。有効な値は次のとおりです。

  • FILTER_POS_HEADER:フィルターは各列のヘッダーセルの上に表示されます。
  • FILTER_POS_BODY:フィルターは各列のヘッダーセルのすぐ下に表示されます。
  • FILTER_POS_FOOTER:フィルターは各列のフッターセルの下に表示されます。
public string $filterPosition self::FILTER_POS_BODY
$filterRowOptions public property

フィルター行要素のHTML属性です。

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

public array $filterRowOptions = [
    
'class' => 'filters',
]
$filterSelector public property

フィルター入力フィールドを選択するための追加のjQueryセレクター。

public string $filterSelector null
$filterUrl public property

フィルタリングの結果を返すためのURLです。yii\helpers\Url::to()を使用してURLが正規化されます。設定されていない場合、現在のコントローラーアクションが使用されます。ユーザーがフィルター入力に変更を加えると、現在のフィルタリング入力がGETパラメーターとしてこのURLに追加されます。

public string|array|null $filterUrl null
$footerRowOptions public property

テーブルフッター行のHTML属性です。

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

$formatter public property

モデル属性値を表示可能なテキストにフォーマットするために使用されるフォーマッタです。これは、yii\i18n\Formatterのインスタンス、またはyii\i18n\Formatterインスタンスを作成するための設定配列のいずれかです。このプロパティが設定されていない場合、「formatter」アプリケーションコンポーネントが使用されます。

$headerRowOptions public property

テーブルヘッダー行のHTML属性です。

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

$layout public property

グリッドビューの異なるセクションをどのように配置するかを決定するレイアウトです。以下のトークンは対応するセクションの内容に置き換えられます。

  • {summary}: サマリーセクション。 renderSummary()を参照してください。
  • {errors}: フィルタモデルのエラーサマリー。 renderErrors()を参照してください。
  • {items}: リストアイテム。 renderItems()を参照してください。
  • {sorter}: ソーター。 renderSorter()を参照してください。
  • {pager}: ペイジャー。 renderPager()を参照してください。
public string $layout "{summary}\n{items}\n{pager}"
$options public property

グリッドビューのコンテナタグのHTML属性です。"tag"要素はコンテナ要素のタグ名を指定し、デフォルトは"div"です。

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

public array $options = [
    
'class' => 'grid-view',
]
$placeFooterAfterBody public property (バージョン2.0.14以降で使用可能)

$showFooterがtrueの場合、DOMでフッターをボディの後に配置するかどうか。

$rowOptions public property

テーブルボディ行のHTML属性です。これは、すべてのボディ行の共通のHTML属性を指定する配列、またはHTML属性の配列を返す無名関数のいずれかです。無名関数は、$dataProviderによって返される各データモデルに対して1回呼び出されます。以下のシグネチャを持つ必要があります。

function ($model, $key, $index, $grid)
  • $model: 現在レンダリングされているデータモデル
  • $key: 現在データモデルに関連付けられているキー値
  • $index: $dataProviderによって返されるモデル配列におけるデータモデルのゼロベースインデックス
  • $grid: GridViewオブジェクト

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

$showFooter public property

グリッドテーブルのフッターセクションを表示するかどうか。

public boolean $showFooter false
$showHeader public property

グリッドテーブルのヘッダーセクションを表示するかどうか。

public boolean $showHeader true
$showOnEmpty public property

$dataProviderがデータなしを返す場合にグリッドビューを表示するかどうか。

public boolean $showOnEmpty true
$tableOptions public property

グリッドテーブル要素のHTML属性。

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

public array $tableOptions = [
    
'class' => 'table table-striped table-bordered',
]

メソッドの詳細

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

__call() public method

定義場所: yii\base\Component::__call()

クラスメソッドではない、指定された名前のメソッドを呼び出します。

このメソッドは、アタッチされたビヘイビアに指定されたメソッドがあるかどうかを確認し、利用可能な場合は実行します。

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

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

メソッド名

$params 配列

メソッドパラメータ

戻り値 mixed

メソッドの戻り値

例外 yii\base\UnknownMethodException

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

                public function __call($name, $params)
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $object) {
        if ($object->hasMethod($name)) {
            return call_user_func_array([$object, $name], $params);
        }
    }
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__clone() public method

定義場所: yii\base\Component::__clone()

既存のオブジェクトを複製してオブジェクトが作成された後に、このメソッドが呼び出されます。

ビヘイビアは古いオブジェクトにアタッチされているため、すべてのビヘイビアを削除します。

public void __clone ( )

                public function __clone()
{
    $this->_events = [];
    $this->_eventWildcards = [];
    $this->_behaviors = null;
}

            
__construct() publicメソッド

定義されている場所: 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メソッド

定義されている場所: yii\base\Component::__get()

コンポーネントプロパティの値を返します。

このメソッドは、以下の順序でチェックし、それに応じて動作します。

  • ゲッターによって定義されたプロパティ: ゲッターの結果を返します。
  • ビヘイビアのプロパティ: ビヘイビアのプロパティの値を返します。

これはPHPのマジックメソッドであり、$value = $component->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)) {
        // read property, e.g. getName()
        return $this->$getter();
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name;
        }
    }
    if (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メソッド

定義されている場所: yii\base\Component::__isset()

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

このメソッドは、以下の順序でチェックし、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティが設定されているかどうかを返します。
  • ビヘイビアのプロパティ: プロパティが設定されているかどうかを返します。
  • 存在しないプロパティの場合はfalseを返します。

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

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

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

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

戻り値 boolean

指定されたプロパティが設定されているかどうか

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name !== null;
        }
    }
    return false;
}

            
__set() publicメソッド

定義されている場所: yii\base\Component::__set()

コンポーネントプロパティの値を設定します。

このメソッドは、以下の順序でチェックし、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティの値を設定します。
  • "on xyz"形式のイベント: "xyz"イベントにハンドラをアタッチします。
  • "as xyz"形式のビヘイビア: "xyz"という名前のビヘイビアをアタッチします。
  • ビヘイビアのプロパティ: ビヘイビアのプロパティの値を設定します。

これはPHPのマジックメソッドであり、$component->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)) {
        // set property
        $this->$setter($value);
        return;
    } elseif (strncmp($name, 'on ', 3) === 0) {
        // on event: attach event handler
        $this->on(trim(substr($name, 3)), $value);
        return;
    } elseif (strncmp($name, 'as ', 3) === 0) {
        // as behavior: attach behavior
        $name = trim(substr($name, 3));
        $this->attachBehavior($name, $value instanceof Behavior ? $value : Yii::createObject($value));
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = $value;
            return;
        }
    }
    if (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
}

            
__unset() publicメソッド

定義されている場所: yii\base\Component::__unset()

コンポーネントプロパティをnullに設定します。

このメソッドは、以下の順序でチェックし、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティの値をnullに設定します。
  • ビヘイビアのプロパティ: プロパティの値をnullに設定します。

これはPHPのマジックメソッドであり、unset($component->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);
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = null;
            return;
        }
    }
    throw new InvalidCallException('Unsetting an unknown or read-only property: ' . get_class($this) . '::' . $name);
}

            
afterRun() publicメソッド (バージョン2.0.11以降で使用可能)

定義されている場所: yii\base\Widget::afterRun()

ウィジェットが実行された直後に、このメソッドが呼び出されます。

このメソッドは、EVENT_AFTER_RUN イベントをトリガーします。メソッドの戻り値は、ウィジェットの戻り値として使用されます。

このメソッドをオーバーライドする場合は、次のようになります。

public function afterRun($result)
{
    $result = parent::afterRun($result);
    // your custom code here
    return $result;
}
public mixed afterRun ( $result )
$result mixed

ウィジェットの戻り値。

戻り値 mixed

処理されたウィジェットの結果。

                public function afterRun($result)
{
    $event = new WidgetEvent();
    $event->result = $result;
    $this->trigger(self::EVENT_AFTER_RUN, $event);
    return $event->result;
}

            
attachBehavior() publicメソッド

定義されている場所: yii\base\Component::attachBehavior()

このコンポーネントにビヘイビアをアタッチします。

このメソッドは、指定された設定に基づいてビヘイビアオブジェクトを作成します。その後、yii\base\Behavior::attach() メソッドを呼び出すことで、ビヘイビアオブジェクトがこのコンポーネントにアタッチされます。

こちらも参照してください detachBehavior().

public yii\base\Behavior attachBehavior ( $name, $behavior )
$name 文字列

ビヘイビアの名前。

$behavior string|array|yii\base\Behavior

ビヘイビアの設定。次のいずれかになります。

  • yii\base\Behavior オブジェクト
  • ビヘイビアクラスを指定する文字列
  • ビヘイビアオブジェクトを作成するためにYii::createObject()に渡されるオブジェクト設定配列。
戻り値 yii\base\Behavior

ビヘイビアオブジェクト

                public function attachBehavior($name, $behavior)
{
    $this->ensureBehaviors();
    return $this->attachBehaviorInternal($name, $behavior);
}

            
attachBehaviors() publicメソッド

定義されている場所: yii\base\Component::attachBehaviors()

コンポーネントにビヘイビアのリストをアタッチします。

各ビヘイビアは名前でインデックス付けされ、yii\base\Behavior オブジェクト、ビヘイビアクラスを指定する文字列、またはビヘイビアを作成するための設定配列である必要があります。

こちらも参照してください attachBehavior().

public void attachBehaviors ( $behaviors )
$behaviors 配列

コンポーネントにアタッチされるビヘイビアのリスト

                public function attachBehaviors($behaviors)
{
    $this->ensureBehaviors();
    foreach ($behaviors as $name => $behavior) {
        $this->attachBehaviorInternal($name, $behavior);
    }
}

            
beforeRun() publicメソッド (バージョン2.0.11以降で使用可能)

定義されている場所: yii\base\Widget::beforeRun()

ウィジェットが実行される直前に、このメソッドが呼び出されます。

このメソッドは、EVENT_BEFORE_RUN イベントをトリガーします。メソッドの戻り値は、ウィジェットの実行を続けるかどうかを決定します。

このメソッドをオーバーライドする場合は、次のように親の実装を呼び出すようにしてください。

public function beforeRun()
{
    if (!parent::beforeRun()) {
        return false;
    }

    // your custom code here

    return true; // or false to not run the widget
}
public boolean beforeRun ( )
戻り値 boolean

ウィジェットの実行を続けるかどうか。

                public function beforeRun()
{
    $event = new WidgetEvent();
    $this->trigger(self::EVENT_BEFORE_RUN, $event);
    return $event->isValid;
}

            
begin() public staticメソッド

定義されている場所: yii\base\Widget::begin()

ウィジェットを開始します。

このメソッドは、呼び出し元のクラスのインスタンスを作成します。作成されたインスタンスに設定を適用します。end() の対応する呼び出しを後で実行する必要があります。一部のウィジェットでは出力バッファリングを使用しているため、出力バッファのネストを壊さないように、end() の呼び出しを同じビュー内で行う必要があります。

こちらも参照してください end()

public static static begin ( $config = [] )
$config 配列

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

戻り値 yii\base\Widget

新しく作成されたウィジェットインスタンス

                public static function begin($config = [])
{
    $config['class'] = get_called_class();
    /* @var $widget Widget */
    $widget = Yii::createObject($config);
    self::$stack[] = $widget;
    return $widget;
}

            
behaviors() public メソッド

定義されている場所: yii\base\Component::behaviors()

このコンポーネントが持つべきビヘイビアのリストを返します。

子クラスはこのメソッドをオーバーライドして、動作させたいビヘイビアを指定できます。

このメソッドの戻り値は、ビヘイビア名でインデックスされたビヘイビアオブジェクトまたは設定の配列である必要があります。ビヘイビア設定は、ビヘイビアクラスを指定する文字列、または以下の構造の配列のいずれかになります。

'behaviorName' => [
    'class' => 'BehaviorClass',
    'property1' => 'value1',
    'property2' => 'value2',
]

yii\base\Behaviorを継承する必要があります。ビヘイビアは、名前付きまたは匿名でアタッチできます。配列キーとして名前が使用されている場合、この名前を使用して、getBehavior()でビヘイビアを取得したり、detachBehavior()でビヘイビアをデタッチしたりできます。匿名ビヘイビアは取得またはデタッチできません。

このメソッドで宣言されたビヘイビアは、コンポーネントに自動的に(オンデマンドで)アタッチされます。

public array behaviors ( )
戻り値 配列

ビヘイビア設定。

                public function behaviors()
{
    return [];
}

            
canGetProperty() public メソッド

定義されている場所: yii\base\Component::canGetProperty()

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

プロパティは、以下の場合に読み取ることができます。

  • クラスに、指定された名前に関連付けられたゲッターメソッドがある場合(この場合、プロパティ名はケースインセンシティブです)。
  • クラスに、指定された名前のメンバ変数がある場合($checkVarsがtrueの場合)。
  • アタッチされたビヘイビアに、指定された名前の読み取り可能なプロパティがある場合($checkBehaviorsがtrueの場合)。

こちらも参照してください canSetProperty()

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

戻り値 boolean

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

                public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canGetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
canSetProperty() public メソッド

定義されている場所: yii\base\Component::canSetProperty()

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

プロパティは、以下の場合に書き込むことができます。

  • クラスに、指定された名前に関連付けられたセッターメソッドがある場合(この場合、プロパティ名はケースインセンシティブです)。
  • クラスに、指定された名前のメンバ変数がある場合($checkVarsがtrueの場合)。
  • アタッチされたビヘイビアに、指定された名前の書き込み可能なプロパティがある場合($checkBehaviorsがtrueの場合)。

こちらも参照してください canGetProperty()

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

戻り値 boolean

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

                public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canSetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
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();
}

            
createDataColumn() protected メソッド

"attribute:format:label"形式の文字列に基づいて、yii\grid\DataColumnオブジェクトを作成します。

protected yii\grid\DataColumn createDataColumn ( $text )
$text 文字列

列の仕様文字列

戻り値 yii\grid\DataColumn

列インスタンス

例外 yii\base\InvalidConfigException

列の仕様が無効な場合

                protected function createDataColumn($text)
{
    if (!preg_match('/^([^:]+)(:(\w*))?(:(.*))?$/', $text, $matches)) {
        throw new InvalidConfigException('The column must be specified in the format of "attribute", "attribute:format" or "attribute:format:label"');
    }
    return Yii::createObject([
        'class' => $this->dataColumnClass ?: DataColumn::className(),
        'grid' => $this,
        'attribute' => $matches[1],
        'format' => isset($matches[3]) ? $matches[3] : 'text',
        'label' => isset($matches[5]) ? $matches[5] : null,
    ]);
}

            
detachBehavior() public メソッド

定義されている場所: yii\base\Component::detachBehavior()

コンポーネントからビヘイビアをデタッチします。

ビヘイビアのyii\base\Behavior::detach()メソッドが呼び出されます。

public yii\base\Behavior|null detachBehavior ( $name )
$name 文字列

ビヘイビアの名前。

戻り値 yii\base\Behavior|null

デタッチされたビヘイビア。ビヘイビアが存在しない場合はnull。

                public function detachBehavior($name)
{
    $this->ensureBehaviors();
    if (isset($this->_behaviors[$name])) {
        $behavior = $this->_behaviors[$name];
        unset($this->_behaviors[$name]);
        $behavior->detach();
        return $behavior;
    }
    return null;
}

            
detachBehaviors() public メソッド

定義されている場所: yii\base\Component::detachBehaviors()

コンポーネントからすべてのビヘイビアをデタッチします。

public void detachBehaviors ( )

                public function detachBehaviors()
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $name => $behavior) {
        $this->detachBehavior($name);
    }
}

            
end() public static メソッド

定義されている場所: yii\base\Widget::end()

ウィジェットを終了します。

ウィジェットのレンダリング結果は直接出力されます。

こちらも参照してください begin()

public static static end ( )
戻り値 yii\base\Widget

終了されたウィジェットインスタンス。

例外 yii\base\InvalidCallException

begin()end()の呼び出しが正しくネストされていない場合

                public static function end()
{
    if (!empty(self::$stack)) {
        $widget = array_pop(self::$stack);
        $calledClass = get_called_class();
        if (Yii::$container->has($calledClass) && isset(Yii::$container->getDefinitions()[$calledClass]['class'])) {
            $calledClass = Yii::$container->getDefinitions()[$calledClass]['class'];
        }
        if (get_class($widget) === $calledClass) {
            /* @var $widget Widget */
            if ($widget->beforeRun()) {
                $result = $widget->run();
                $result = $widget->afterRun($result);
                echo $result;
            }
            return $widget;
        }
        throw new InvalidCallException('Expecting end() of ' . get_class($widget) . ', found ' . get_called_class());
    }
    throw new InvalidCallException('Unexpected ' . get_called_class() . '::end() call. A matching begin() is not found.');
}

            
ensureBehaviors() public メソッド

定義されている場所: yii\base\Component::ensureBehaviors()

behaviors()で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。

public void ensureBehaviors ( )

                public function ensureBehaviors()
{
    if ($this->_behaviors === null) {
        $this->_behaviors = [];
        foreach ($this->behaviors() as $name => $behavior) {
            $this->attachBehaviorInternal($name, $behavior);
        }
    }
}

            
getBehavior() public メソッド

定義されている場所: yii\base\Component::getBehavior()

指定された名前のビヘイビアオブジェクトを返します。

public yii\base\Behavior|null getBehavior ( $name )
$name 文字列

ビヘイビア名

戻り値 yii\base\Behavior|null

ビヘイビアオブジェクト。ビヘイビアが存在しない場合はnull。

                public function getBehavior($name)
{
    $this->ensureBehaviors();
    return isset($this->_behaviors[$name]) ? $this->_behaviors[$name] : null;
}

            
getBehaviors() public メソッド

定義されている場所: yii\base\Component::getBehaviors()

このコンポーネントにアタッチされているすべてのビヘイビアを返します。

public yii\base\Behavior[] getBehaviors ( )
戻り値 yii\base\Behavior[]

このコンポーネントにアタッチされているビヘイビアのリスト

                public function getBehaviors()
{
    $this->ensureBehaviors();
    return $this->_behaviors;
}

            
getClientOptions() protected メソッド

グリッドビューJSウィジェットのオプションを返します。

protected array getClientOptions ( )
戻り値 配列

オプション

                protected function getClientOptions()
{
    $filterUrl = isset($this->filterUrl) ? $this->filterUrl : Yii::$app->request->url;
    $id = $this->filterRowOptions['id'];
    $filterSelector = "#$id input, #$id select";
    if (isset($this->filterSelector)) {
        $filterSelector .= ', ' . $this->filterSelector;
    }
    return [
        'filterUrl' => Url::to($filterUrl),
        'filterSelector' => $filterSelector,
    ];
}

            
getId() publicメソッド

定義済み: yii\base\Widget::getId()

ウィジェットのIDを返します。

public string|null getId ( $autoGenerate true )
$autoGenerate boolean

IDが事前に設定されていない場合にIDを生成するかどうか

戻り値 文字列|null

ウィジェットのIDです。

                public function getId($autoGenerate = true)
{
    if ($autoGenerate && $this->_id === null) {
        $this->_id = static::$autoIdPrefix . static::$counter++;
    }
    return $this->_id;
}

            
getView() publicメソッド

定義済み: yii\base\Widget::getView()

ビューやビューファイルをレンダリングするために使用できるビューオブジェクトを返します。

render() メソッドと renderFile() メソッドは、実際のビューのレンダリングを実行するためにこのビューオブジェクトを使用します。設定されていない場合、デフォルトで「view」アプリケーションコンポーネントになります。

public yii\web\View getView ( )
戻り値 yii\web\View

ビューやビューファイルをレンダリングするために使用できるビューオブジェクト。

                public function getView()
{
    if ($this->_view === null) {
        $this->_view = Yii::$app->getView();
    }
    return $this->_view;
}

            
getViewPath() publicメソッド

定義済み: yii\base\Widget::getViewPath()

このウィジェットのビューファイルを含むディレクトリを返します。

デフォルトの実装では、ウィジェットのクラスファイルを含むディレクトリの下にある 'views' サブディレクトリを返します。

public string getViewPath ( )
戻り値 文字列

このウィジェットのビューファイルを含むディレクトリ。

                public function getViewPath()
{
    $class = new ReflectionClass($this);
    return dirname($class->getFileName()) . DIRECTORY_SEPARATOR . 'views';
}

            
guessColumns() protectedメソッド

$columnsが明示的に指定されていない場合、この関数は指定されたデータから表示する列を推測しようとします。

protected void guessColumns ( )

                protected function guessColumns()
{
    $models = $this->dataProvider->getModels();
    $model = reset($models);
    if (is_array($model) || is_object($model)) {
        foreach ($model as $name => $value) {
            if ($value === null || is_scalar($value) || is_callable([$value, '__toString'])) {
                $this->columns[] = (string) $name;
            }
        }
    }
}

            
hasEventHandlers() publicメソッド

定義済み: yii\base\Component::hasEventHandlers()

指定されたイベントにハンドラがアタッチされているかどうかを示す値を返します。

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

イベント名

戻り値 boolean

イベントにハンドラーがアタッチされているかどうか。

                public function hasEventHandlers($name)
{
    $this->ensureBehaviors();
    if (!empty($this->_events[$name])) {
        return true;
    }
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (!empty($handlers) && StringHelper::matchWildcard($wildcard, $name)) {
            return true;
        }
    }
    return Event::hasHandlers($this, $name);
}

            
hasMethod() publicメソッド

定義済み: yii\base\Component::hasMethod()

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

メソッドは、以下の場合に定義されています。

  • クラスが指定された名前のメソッドを持っている場合
  • アタッチされたビヘイビアが指定された名前のメソッドを持っている場合($checkBehaviors が true の場合)。
public boolean hasMethod ( $name, $checkBehaviors true )
$name 文字列

プロパティ名

$checkBehaviors boolean

ビヘイビアのメソッドをこのコンポーネントのメソッドとして扱うかどうか

戻り値 boolean

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

                public function hasMethod($name, $checkBehaviors = true)
{
    if (method_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->hasMethod($name)) {
                return true;
            }
        }
    }
    return false;
}

            
hasProperty() publicメソッド

定義済み: yii\base\Component::hasProperty()

このコンポーネントにプロパティが定義されているかどうかを示す値を返します。

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

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

こちらも参照してください

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

戻り値 boolean

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

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

            
init() publicメソッド

グリッドビューを初期化します。

このメソッドは、必要なプロパティ値を初期化し、$columns オブジェクトをインスタンス化します。

public void init ( )

                public function init()
{
    parent::init();
    if ($this->formatter === null) {
        $this->formatter = Yii::$app->getFormatter();
    } elseif (is_array($this->formatter)) {
        $this->formatter = Yii::createObject($this->formatter);
    }
    if (!$this->formatter instanceof Formatter) {
        throw new InvalidConfigException('The "formatter" property must be either a Format object or a configuration array.');
    }
    if (!isset($this->filterRowOptions['id'])) {
        $this->filterRowOptions['id'] = $this->options['id'] . '-filters';
    }
    $this->initColumns();
}

            
initColumns() protectedメソッド

列オブジェクトを作成して初期化します。

protected void initColumns ( )

                protected function initColumns()
{
    if (empty($this->columns)) {
        $this->guessColumns();
    }
    foreach ($this->columns as $i => $column) {
        if (is_string($column)) {
            $column = $this->createDataColumn($column);
        } else {
            $column = Yii::createObject(array_merge([
                'class' => $this->dataColumnClass ?: DataColumn::className(),
                'grid' => $this,
            ], $column));
        }
        if (!$column->visible) {
            unset($this->columns[$i]);
            continue;
        }
        $this->columns[$i] = $column;
    }
}

            
off() publicメソッド

定義済み: yii\base\Component::off()

このコンポーネントから既存のイベントハンドラをデタッチします。

このメソッドは、on() の逆です。

注:イベント名にワイルドカードパターンが渡された場合、このワイルドカードで登録されたハンドラーのみが削除され、このワイルドカードと一致するプレーン名で登録されたハンドラーは残ります。

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

public boolean off ( $name, $handler null )
$name 文字列

イベント名

$handler callable|null

削除するイベントハンドラー。null の場合、名前付きイベントにアタッチされているすべてのハンドラーが削除されます。

戻り値 boolean

ハンドラーが見つかってデタッチされた場合

                public function off($name, $handler = null)
{
    $this->ensureBehaviors();
    if (empty($this->_events[$name]) && empty($this->_eventWildcards[$name])) {
        return false;
    }
    if ($handler === null) {
        unset($this->_events[$name], $this->_eventWildcards[$name]);
        return true;
    }
    $removed = false;
    // plain event names
    if (isset($this->_events[$name])) {
        foreach ($this->_events[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_events[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_events[$name] = array_values($this->_events[$name]);
            return true;
        }
    }
    // wildcard event names
    if (isset($this->_eventWildcards[$name])) {
        foreach ($this->_eventWildcards[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_eventWildcards[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_eventWildcards[$name] = array_values($this->_eventWildcards[$name]);
            // remove empty wildcards to save future redundant regex checks:
            if (empty($this->_eventWildcards[$name])) {
                unset($this->_eventWildcards[$name]);
            }
        }
    }
    return $removed;
}

            
on() publicメソッド

定義済み: yii\base\Component::on()

イベントにイベントハンドラをアタッチします。

イベントハンドラーは、有効なPHPコールバックである必要があります。いくつかの例を以下に示します。

function ($event) { ... }         // anonymous function
[$object, 'handleClick']          // $object->handleClick()
['Page', 'handleClick']           // Page::handleClick()
'handleClick'                     // global function handleClick()

イベントハンドラーは、次のシグネチャで定義する必要があります。

function ($event)

ここで、$event は、イベントに関連付けられたパラメーターを含む yii\base\Event オブジェクトです。

2.0.14以降、イベント名をワイルドカードパターンとして指定できます。

$component->on('event.group.*', function ($event) {
    Yii::trace($event->name . ' is triggered.');
});

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

public void on ( $name, $handler, $data null, $append true )
$name 文字列

イベント名

$handler callable

イベントハンドラー

$data mixed

イベントがトリガーされたときにイベントハンドラに渡されるデータ。イベントハンドラが呼び出されると、このデータはyii\base\Event::$dataを介してアクセスできます。

$append boolean

新しいイベントハンドラを既存のハンドラリストの最後に追加するかどうか。falseの場合、新しいハンドラは既存のハンドラリストの先頭に挿入されます。

                public function on($name, $handler, $data = null, $append = true)
{
    $this->ensureBehaviors();
    if (strpos($name, '*') !== false) {
        if ($append || empty($this->_eventWildcards[$name])) {
            $this->_eventWildcards[$name][] = [$handler, $data];
        } else {
            array_unshift($this->_eventWildcards[$name], [$handler, $data]);
        }
        return;
    }
    if ($append || empty($this->_events[$name])) {
        $this->_events[$name][] = [$handler, $data];
    } else {
        array_unshift($this->_events[$name], [$handler, $data]);
    }
}

            
render() publicメソッド

定義先: yii\base\Widget::render()

ビューをレンダリングします。

レンダリングされるビューは、以下のいずれかの形式で指定できます。

  • パスエイリアス (例: "@app/views/site/index")
  • アプリケーション内の絶対パス (例: "//site/index"):ビュー名がダブルスラッシュで始まる場合。実際のビューファイルは、アプリケーションのビューパスで検索されます。
  • モジュール内の絶対パス (例: "/site/index"):ビュー名がシングルスラッシュで始まる場合。実際のビューファイルは、現在アクティブなモジュールのビューパスで検索されます。
  • 相対パス (例: "index"):実際のビューファイルは$viewPathで検索されます。

ビュー名にファイル拡張子が含まれていない場合、デフォルトの.phpが使用されます。

public string render ( $view, $params = [] )
$view 文字列

ビュー名。

$params 配列

ビューで使用可能にするパラメータ(名前と値のペア)。

戻り値 文字列

レンダリング結果。

例外 yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function render($view, $params = [])
{
    return $this->getView()->render($view, $params, $this);
}

            
renderCaption() publicメソッド

キャプション要素をレンダリングします。

public boolean|string renderCaption ( )
戻り値 boolean|string

レンダリングされたキャプション要素、またはキャプション要素をレンダリングしない場合はfalse

                public function renderCaption()
{
    if (!empty($this->caption)) {
        return Html::tag('caption', $this->caption, $this->captionOptions);
    }
    return false;
}

            
renderColumnGroup() publicメソッド

列グループのHTMLをレンダリングします。

public boolean|string renderColumnGroup ( )
戻り値 boolean|string

列グループのHTML、または列グループをレンダリングしない場合はfalse

                public function renderColumnGroup()
{
    foreach ($this->columns as $column) {
        /* @var $column Column */
        if (!empty($column->options)) {
            $cols = [];
            foreach ($this->columns as $col) {
                $cols[] = Html::tag('col', '', $col->options);
            }
            return Html::tag('colgroup', implode("\n", $cols));
        }
    }
    return false;
}

            
renderEmpty() publicメソッド

定義先: yii\widgets\BaseListView::renderEmpty()

リストビューにデータがないことを示すHTMLコンテンツをレンダリングします。

こちらも参照してください $emptyText.

public string renderEmpty ( )
戻り値 文字列

レンダリング結果

                public function renderEmpty()
{
    if ($this->emptyText === false) {
        return '';
    }
    $options = $this->emptyTextOptions;
    $tag = ArrayHelper::remove($options, 'tag', 'div');
    return Html::tag($tag, $this->emptyText, $options);
}

            
renderErrors() publicメソッド

フィルタモデルのバリデータエラーをレンダリングします。

public string renderErrors ( )
戻り値 文字列

レンダリング結果。

                public function renderErrors()
{
    if ($this->filterModel instanceof Model && $this->filterModel->hasErrors()) {
        return Html::errorSummary($this->filterModel, $this->filterErrorSummaryOptions);
    }
    return '';
}

            
renderFile() publicメソッド

定義先: yii\base\Widget::renderFile()

ビューファイルをレンダリングします。

public string renderFile ( $file, $params = [] )
$file 文字列

レンダリングするビューファイル。ファイルパスまたはパスエイリアスのいずれかです。

$params 配列

ビューで使用可能にするパラメータ(名前と値のペア)。

戻り値 文字列

レンダリング結果。

例外 yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function renderFile($file, $params = [])
{
    return $this->getView()->renderFile($file, $params, $this);
}

            
renderFilters() publicメソッド

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

public string renderFilters ( )
戻り値 文字列

レンダリング結果。

                public function renderFilters()
{
    if ($this->filterModel !== null) {
        $cells = [];
        foreach ($this->columns as $column) {
            /* @var $column Column */
            $cells[] = $column->renderFilterCell();
        }
        return Html::tag('tr', implode('', $cells), $this->filterRowOptions);
    }
    return '';
}

            
renderItems() publicメソッド

グリッドビューのデータモデルをレンダリングします。

public string renderItems ( )
戻り値 文字列

テーブルのHTMLコード。

                public function renderItems()
{
    $caption = $this->renderCaption();
    $columnGroup = $this->renderColumnGroup();
    $tableHeader = $this->showHeader ? $this->renderTableHeader() : false;
    $tableBody = $this->renderTableBody();
    $tableFooter = false;
    $tableFooterAfterBody = false;
    if ($this->showFooter) {
        if ($this->placeFooterAfterBody) {
            $tableFooterAfterBody = $this->renderTableFooter();
        } else {
            $tableFooter = $this->renderTableFooter();
        }
    }
    $content = array_filter([
        $caption,
        $columnGroup,
        $tableHeader,
        $tableFooter,
        $tableBody,
        $tableFooterAfterBody,
    ]);
    return Html::tag('table', implode("\n", $content), $this->tableOptions);
}

            
renderPager() publicメソッド

定義先: yii\widgets\BaseListView::renderPager()

ページャをレンダリングします。

public string renderPager ( )
戻り値 文字列

レンダリング結果

                public function renderPager()
{
    $pagination = $this->dataProvider->getPagination();
    if ($pagination === false || $this->dataProvider->getCount() <= 0) {
        return '';
    }
    /* @var $class LinkPager */
    $pager = $this->pager;
    $class = ArrayHelper::remove($pager, 'class', LinkPager::className());
    $pager['pagination'] = $pagination;
    $pager['view'] = $this->getView();
    return $class::widget($pager);
}

            
renderSection() publicメソッド

指定された名前のセクションをレンダリングします。

指定されたセクションがサポートされていない場合、falseが返されます。

public string|boolean renderSection ( $name )
$name 文字列

セクション名、例:{summary}{items}

戻り値 string|boolean

セクションのレンダリング結果、または指定されたセクションがサポートされていない場合はfalse。

                public function renderSection($name)
{
    switch ($name) {
        case '{errors}':
            return $this->renderErrors();
        default:
            return parent::renderSection($name);
    }
}

            
renderSorter() publicメソッド

定義先: yii\widgets\BaseListView::renderSorter()

ソーターをレンダリングします。

public string renderSorter ( )
戻り値 文字列

レンダリング結果

                public function renderSorter()
{
    $sort = $this->dataProvider->getSort();
    if ($sort === false || empty($sort->attributes) || $this->dataProvider->getCount() <= 0) {
        return '';
    }
    /* @var $class LinkSorter */
    $sorter = $this->sorter;
    $class = ArrayHelper::remove($sorter, 'class', LinkSorter::className());
    $sorter['sort'] = $sort;
    $sorter['view'] = $this->getView();
    return $class::widget($sorter);
}

            
renderSummary() publicメソッド

定義: yii\widgets\BaseListView::renderSummary()

サマリーテキストをレンダリングします。

public void renderSummary ( )

                public function renderSummary()
{
    $count = $this->dataProvider->getCount();
    if ($count <= 0) {
        return '';
    }
    $summaryOptions = $this->summaryOptions;
    $tag = ArrayHelper::remove($summaryOptions, 'tag', 'div');
    if (($pagination = $this->dataProvider->getPagination()) !== false) {
        $totalCount = $this->dataProvider->getTotalCount();
        $begin = $pagination->getPage() * $pagination->pageSize + 1;
        $end = $begin + $count - 1;
        if ($begin > $end) {
            $begin = $end;
        }
        $page = $pagination->getPage() + 1;
        $pageCount = $pagination->pageCount;
        if (($summaryContent = $this->summary) === null) {
            return Html::tag($tag, Yii::t('yii', 'Showing <b>{begin, number}-{end, number}</b> of <b>{totalCount, number}</b> {totalCount, plural, one{item} other{items}}.', [
                    'begin' => $begin,
                    'end' => $end,
                    'count' => $count,
                    'totalCount' => $totalCount,
                    'page' => $page,
                    'pageCount' => $pageCount,
                ]), $summaryOptions);
        }
    } else {
        $begin = $page = $pageCount = 1;
        $end = $totalCount = $count;
        if (($summaryContent = $this->summary) === null) {
            return Html::tag($tag, Yii::t('yii', 'Total <b>{count, number}</b> {count, plural, one{item} other{items}}.', [
                'begin' => $begin,
                'end' => $end,
                'count' => $count,
                'totalCount' => $totalCount,
                'page' => $page,
                'pageCount' => $pageCount,
            ]), $summaryOptions);
        }
    }
    if ($summaryContent === '') {
        return '';
    }
    return Html::tag($tag, Yii::$app->getI18n()->format($summaryContent, [
        'begin' => $begin,
        'end' => $end,
        'count' => $count,
        'totalCount' => $totalCount,
        'page' => $page,
        'pageCount' => $pageCount,
    ], Yii::$app->language), $summaryOptions);
}

            
renderTableBody() publicメソッド

テーブルボディをレンダリングします。

public string renderTableBody ( )
戻り値 文字列

レンダリング結果。

                public function renderTableBody()
{
    $models = array_values($this->dataProvider->getModels());
    $keys = $this->dataProvider->getKeys();
    $rows = [];
    foreach ($models as $index => $model) {
        $key = $keys[$index];
        if ($this->beforeRow !== null) {
            $row = call_user_func($this->beforeRow, $model, $key, $index, $this);
            if (!empty($row)) {
                $rows[] = $row;
            }
        }
        $rows[] = $this->renderTableRow($model, $key, $index);
        if ($this->afterRow !== null) {
            $row = call_user_func($this->afterRow, $model, $key, $index, $this);
            if (!empty($row)) {
                $rows[] = $row;
            }
        }
    }
    if (empty($rows) && $this->emptyText !== false) {
        $colspan = count($this->columns);
        return "<tbody>\n<tr><td colspan=\"$colspan\">" . $this->renderEmpty() . "</td></tr>\n</tbody>";
    }
    return "<tbody>\n" . implode("\n", $rows) . "\n</tbody>";
}

            
renderTableFooter() publicメソッド

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

public string renderTableFooter ( )
戻り値 文字列

レンダリング結果。

                public function renderTableFooter()
{
    $cells = [];
    foreach ($this->columns as $column) {
        /* @var $column Column */
        $cells[] = $column->renderFooterCell();
    }
    $content = Html::tag('tr', implode('', $cells), $this->footerRowOptions);
    if ($this->filterPosition === self::FILTER_POS_FOOTER) {
        $content .= $this->renderFilters();
    }
    return "<tfoot>\n" . $content . "\n</tfoot>";
}

            
renderTableHeader() publicメソッド

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

public string renderTableHeader ( )
戻り値 文字列

レンダリング結果。

                public function renderTableHeader()
{
    $cells = [];
    foreach ($this->columns as $column) {
        /* @var $column Column */
        $cells[] = $column->renderHeaderCell();
    }
    $content = Html::tag('tr', implode('', $cells), $this->headerRowOptions);
    if ($this->filterPosition === self::FILTER_POS_HEADER) {
        $content = $this->renderFilters() . $content;
    } elseif ($this->filterPosition === self::FILTER_POS_BODY) {
        $content .= $this->renderFilters();
    }
    return "<thead>\n" . $content . "\n</thead>";
}

            
renderTableRow() publicメソッド

指定されたデータモデルとキーを使用してテーブル行をレンダリングします。

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

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

$key mixed

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

$index 整数

$dataProviderによって返されるモデル配列における、データモデルの0ベースのインデックス。

戻り値 文字列

レンダリング結果

                public function renderTableRow($model, $key, $index)
{
    $cells = [];
    /* @var $column Column */
    foreach ($this->columns as $column) {
        $cells[] = $column->renderDataCell($model, $key, $index);
    }
    if ($this->rowOptions instanceof Closure) {
        $options = call_user_func($this->rowOptions, $model, $key, $index, $this);
    } else {
        $options = $this->rowOptions;
    }
    $options['data-key'] = is_array($key) ? json_encode($key) : (string) $key;
    return Html::tag('tr', implode('', $cells), $options);
}

            
run() publicメソッド

ウィジェットを実行します。

public void run ( )

                public function run()
{
    $view = $this->getView();
    GridViewAsset::register($view);
    $id = $this->options['id'];
    $options = Json::htmlEncode(array_merge($this->getClientOptions(), ['filterOnFocusOut' => $this->filterOnFocusOut]));
    $view->registerJs("jQuery('#$id').yiiGridView($options);");
    parent::run();
}

            
setId() publicメソッド

定義: yii\base\Widget::setId()

ウィジェットのIDを設定します。

public void setId ( $value )
$value 文字列

ウィジェットのID。

                public function setId($value)
{
    $this->_id = $value;
}

            
setView() publicメソッド

定義: yii\base\Widget::setView()

このウィジェットで使用されるビューオブジェクトを設定します。

public void setView ( $view )
$view yii\base\View

ビューやビューファイルをレンダリングするために使用できるビューオブジェクト。

                public function setView($view)
{
    $this->_view = $view;
}

            
trigger() publicメソッド

定義: yii\base\Component::trigger()

イベントをトリガーします。

このメソッドはイベントの発生を表します。クラスレベルのハンドラを含む、イベントにアタッチされたすべてのハンドラを呼び出します。

public void trigger ( $name, yii\base\Event $event null )
$name 文字列

イベント名

$event yii\base\Event|null

イベントインスタンス。設定されていない場合、デフォルトのyii\base\Eventオブジェクトが作成されます。

                public function trigger($name, Event $event = null)
{
    $this->ensureBehaviors();
    $eventHandlers = [];
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (StringHelper::matchWildcard($wildcard, $name)) {
            $eventHandlers[] = $handlers;
        }
    }
    if (!empty($this->_events[$name])) {
        $eventHandlers[] = $this->_events[$name];
    }
    if (!empty($eventHandlers)) {
        $eventHandlers = call_user_func_array('array_merge', $eventHandlers);
        if ($event === null) {
            $event = new Event();
        }
        if ($event->sender === null) {
            $event->sender = $this;
        }
        $event->handled = false;
        $event->name = $name;
        foreach ($eventHandlers as $handler) {
            $event->data = $handler[1];
            call_user_func($handler[0], $event);
            // stop further handling if the event is handled
            if ($event->handled) {
                return;
            }
        }
    }
    // invoke class-level attached handlers
    Event::trigger($this, $name, $event);
}

            
widget() public staticメソッド

定義: yii\base\Widget::widget()

ウィジェットインスタンスを作成して実行します。

このメソッドによってウィジェットのレンダリング結果が返されます。

public static string widget ( $config = [] )
$config 配列

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

戻り値 文字列

ウィジェットのレンダリング結果。

例外 例外

                public static function widget($config = [])
{
    ob_start();
    ob_implicit_flush(false);
    try {
        /* @var $widget Widget */
        $config['class'] = get_called_class();
        $widget = Yii::createObject($config);
        $out = '';
        if ($widget->beforeRun()) {
            $result = $widget->run();
            $out = $widget->afterRun($result);
        }
    } catch (\Exception $e) {
        // close the output buffer opened above if it has not been closed already
        if (ob_get_level() > 0) {
            ob_end_clean();
        }
        throw $e;
    } catch (\Throwable $e) {
        // close the output buffer opened above if it has not been closed already
        if (ob_get_level() > 0) {
            ob_end_clean();
        }
        throw $e;
    }
    return ob_get_clean() . $out;
}