0 フォロワー

クラス yii\data\ActiveDataProvider

継承yii\data\ActiveDataProvider » yii\data\BaseDataProvider » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurable, yii\data\DataProviderInterface
利用可能バージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/data/ActiveDataProvider.php

ActiveDataProvider は、yii\db\Queryyii\db\ActiveQuery に基づくデータプロバイダを実装します。

ActiveDataProvider は、$query を使用して DB クエリを実行することでデータを提供します。

以下は、ActiveDataProvider を使用して ActiveRecord インスタンスを提供する例です。

$provider = new ActiveDataProvider([
    'query' => Post::find(),
    'pagination' => [
        'pageSize' => 20,
    ],
]);

// get the posts in the current page
$posts = $provider->getModels();

また、以下の例は、ActiveRecord を使用せずに ActiveDataProvider を使用する方法を示しています。

$query = new Query();
$provider = new ActiveDataProvider([
    'query' => $query->from('post'),
    'pagination' => [
        'pageSize' => 20,
    ],
]);

// get the posts in the current page
$posts = $provider->getModels();

ActiveDataProvider の詳細と使用法については、データプロバイダに関するガイド記事を参照してください。

パブリックプロパティ

継承されたプロパティを隠す

プロパティ 説明 定義元
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$count integer 現在のページにおけるデータモデルの数。 yii\data\BaseDataProvider
$db yii\db\Connection|array|string|null DB接続オブジェクトまたはDB接続のアプリケーションコンポーネントID。 yii\data\ActiveDataProvider
$id string|null すべてのデータプロバイダの中でデータプロバイダを一意に識別するID。 yii\data\BaseDataProvider
$key string|callable|null データモデルのキーとして使用されるカラム。 yii\data\ActiveDataProvider
$keys array $modelsに対応するキー値のリスト。 yii\data\BaseDataProvider
$models array 現在のページにおけるデータモデルのリスト。 yii\data\BaseDataProvider
$pagination yii\data\Pagination|false ページネーションオブジェクト。 yii\data\BaseDataProvider
$query yii\db\QueryInterface|null データモデルと、明示的に設定されていない場合の $totalCount を取得するために使用されるクエリ。 yii\data\ActiveDataProvider
$sort yii\data\Sort|boolean ソートオブジェクト。 yii\data\BaseDataProvider
$totalCount integer 可能なデータモデルの総数。 yii\data\BaseDataProvider

パブリックメソッド

継承されたメソッドを隠す

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\Component
__clone() yii\data\ActiveDataProvider
__construct() コンストラクタ。 yii\base\BaseObject
__get() コンポーネントプロパティの値を返します。 yii\base\Component
__isset() プロパティが設定されているか、つまり定義されており、nullではないかを確認します。 yii\base\Component
__set() コンポーネントプロパティの値を設定します。 yii\base\Component
__unset() コンポーネントプロパティを null に設定します。 yii\base\Component
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
behaviors() このコンポーネントが動作すべきビヘイビアのリストを返します。 yii\base\Component
canGetProperty() プロパティが読み取り可能かどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティが設定可能かどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
ensureBehaviors() behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされたすべてのビヘイビアを返します。 yii\base\Component
getCount() 現在のページにおけるデータモデルの数を返します。 yii\data\BaseDataProvider
getKeys() データモデルに関連付けられたキー値を返します。 yii\data\BaseDataProvider
getModels() 現在のページにおけるデータモデルを返します。 yii\data\BaseDataProvider
getPagination() このデータプロバイダで使用されるページネーションオブジェクトを返します。 yii\data\BaseDataProvider
getSort() このデータプロバイダで使用されるソートオブジェクトを返します。 yii\data\BaseDataProvider
getTotalCount() データモデルの総数を返します。 yii\data\BaseDataProvider
hasEventHandlers() 名前付きイベントにハンドラがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() DB接続コンポーネントを初期化します。 yii\data\ActiveDataProvider
off() このコンポーネントから既存のイベントハンドラをデタッチします。 yii\base\Component
on() イベントにイベントハンドラをアタッチします。 yii\base\Component
prepare() データモデルとキーを準備します。 yii\data\BaseDataProvider
refresh() データプロバイダをリフレッシュします。 yii\data\BaseDataProvider
setKeys() データモデルに関連付けられたキー値を設定します。 yii\data\BaseDataProvider
setModels() 現在のページにおけるデータモデルを設定します。 yii\data\BaseDataProvider
setPagination() このデータプロバイダのページネーションを設定します。 yii\data\BaseDataProvider
setSort() このデータプロバイダのソート定義を設定します。 yii\data\ActiveDataProvider
setTotalCount() データモデルの総数を設定します。 yii\data\BaseDataProvider
trigger() イベントをトリガーします。 yii\base\Component

保護されたメソッド

継承されたメソッドを隠す

メソッド 説明 定義元
prepareKeys() 現在利用可能なデータモデルに関連付けられたキーを準備します。 yii\data\ActiveDataProvider
prepareModels() 現在のページで利用可能になるデータモデルを準備します。 yii\data\ActiveDataProvider
prepareTotalCount() このデータプロバイダにおけるデータモデルの総数を示す値を返します。 yii\data\ActiveDataProvider

プロパティの詳細

継承されたプロパティを隠す

$db パブリックプロパティ

DB接続オブジェクトまたはDB接続のアプリケーションコンポーネントID。設定されている場合、$query のデフォルトのDB接続をオーバーライドします。バージョン2.0.2以降、これはオブジェクトを作成するための設定配列にもできます。

$key public プロパティ

データモデルのキーとして使用されるカラムです。カラム名、または指定されたデータモデルのキー値を返すcallableのいずれかになります。

これが設定されていない場合、データモデルのキーを決定するために以下のルールが使用されます。

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

public string|callable|null $key null
$query public プロパティ

データモデルと、明示的に設定されていない場合の $totalCount を取得するために使用されるクエリ。

メソッド詳細

継承されたメソッドを隠す

__call() public メソッド

定義元: yii\base\Component::__call()

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

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

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

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

メソッド名

$params array

メソッドのパラメータ

return mixed

メソッドの戻り値

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

public void __clone ( )

                public function __clone()
{
    if (is_object($this->query)) {
        $this->query = clone $this->query;
    }
    parent::__clone();
}

            
__construct() public メソッド

定義元: yii\base\BaseObject::__construct()

コンストラクタ。

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

  • 指定された設定$configでオブジェクトを初期化します。
  • init()を呼び出します。

このメソッドが子クラスでオーバーライドされている場合は、次のことが推奨されます。

  • コンストラクタの最後のパラメータは、ここでの$configのように、設定配列であること。
  • コンストラクタの最後に親の実装を呼び出すこと。
public void __construct ( $config = [] )
$config array

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

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

            
__get() public メソッド

定義元: yii\base\Component::__get()

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

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

  • ゲッターで定義されたプロパティ:ゲッターの結果を返す
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を返す

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

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

public mixed __get ( $name )
$name string

プロパティ名

return mixed

プロパティ値またはビヘイビアのプロパティ値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws 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を返す

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

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

public boolean __isset ( $name )
$name string

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

return 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"という名前のビヘイビアをアタッチする
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を設定する

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

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

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

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

$value mixed

プロパティ値

throws yii\base\UnknownPropertyException

プロパティが定義されていない場合

throws 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に設定する

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

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

public void __unset ( $name )
$name string

プロパティ名

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

            
attachBehavior() public メソッド

定義元: yii\base\Component::attachBehavior()

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

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

以下も参照してください detachBehavior()

public yii\base\Behavior attachBehavior ( $name, $behavior )
$name string

ビヘイビアの名前。

$behavior string|array|yii\base\Behavior

ビヘイビアの構成。これは以下のいずれかになります。

  • yii\base\Behavior オブジェクト
  • ビヘイビアクラスを指定する文字列
  • Yii::createObject() に渡してビヘイビアオブジェクトを作成するオブジェクト構成配列。
return 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 array

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

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

            
behaviors() public メソッド

定義元: yii\base\Component::behaviors()

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

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

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

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

ビヘイビアクラスは、yii\base\Behavior から拡張する必要があることに注意してください。ビヘイビアは、名前付きまたは匿名でアタッチできます。名前が配列キーとして使用されている場合、この名前を使用して、ビヘイビアは後で getBehavior() を使用して取得するか、detachBehavior() を使用してデタッチできます。匿名ビヘイビアは、取得またはデタッチできません。

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

public array behaviors ( )
return array

ビヘイビアの構成。

                public function behaviors()
{
    return [];
}

            
canGetProperty() public メソッド

定義元: yii\base\Component::canGetProperty()

プロパティが読み取り可能かどうかを示す値を返します。

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

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

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

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

return 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 string

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

return 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 ( )
return string

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

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

            
detachBehavior() public メソッド

定義元: yii\base\Component::detachBehavior()

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

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

public yii\base\Behavior|null detachBehavior ( $name )
$name string

ビヘイビアの名前。

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

            
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 string

ビヘイビアの名前

return 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 ( )
return yii\base\Behavior[]

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

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

            
getCount() public メソッド

定義場所: yii\data\BaseDataProvider::getCount()

現在のページにおけるデータモデルの数を返します。

public integer getCount ( )
return integer

現在のページにおけるデータモデルの数。

                public function getCount()
{
    return count($this->getModels());
}

            
getKeys() public メソッド

定義場所: yii\data\BaseDataProvider::getKeys()

データモデルに関連付けられたキー値を返します。

public array getKeys ( )
return array

$models に対応するキー値のリスト。$models 内の各データモデルは、この配列内の対応するキー値によって一意に識別されます。

                public function getKeys()
{
    $this->prepare();
    return $this->_keys;
}

            
getModels() public メソッド

定義場所: yii\data\BaseDataProvider::getModels()

現在のページにおけるデータモデルを返します。

public array getModels ( )
return array

現在のページにおけるデータモデルのリスト。

                public function getModels()
{
    $this->prepare();
    return $this->_models;
}

            
getPagination() public メソッド

定義場所: yii\data\BaseDataProvider::getPagination()

このデータプロバイダで使用されるページネーションオブジェクトを返します。

yii\data\Pagination::$totalCount および yii\data\Pagination::$pageCount の正しい値を取得するには、最初に prepare() または getModels() を呼び出す必要があることに注意してください。

public yii\data\Pagination|false getPagination ( )
return yii\data\Pagination|false

ページネーションオブジェクト。これが false の場合、ページネーションが無効であることを意味します。

                public function getPagination()
{
    if ($this->_pagination === null) {
        $this->setPagination([]);
    }
    return $this->_pagination;
}

            
getSort() public メソッド

定義場所: yii\data\BaseDataProvider::getSort()

このデータプロバイダで使用されるソートオブジェクトを返します。

public yii\data\Sort|boolean getSort ( )
return yii\data\Sort|boolean

ソートオブジェクト。これが false の場合、ソートが無効であることを意味します。

                public function getSort()
{
    if ($this->_sort === null) {
        $this->setSort([]);
    }
    return $this->_sort;
}

            
getTotalCount() public メソッド

定義場所: yii\data\BaseDataProvider::getTotalCount()

データモデルの総数を返します。

$pagination が false の場合、これは $count と同じ値を返します。それ以外の場合は、prepareTotalCount() を呼び出してカウントを取得します。

public integer getTotalCount ( )
return integer

可能なデータモデルの総数。

                public function getTotalCount()
{
    if ($this->getPagination() === false) {
        return $this->getCount();
    } elseif ($this->_totalCount === null) {
        $this->_totalCount = $this->prepareTotalCount();
    }
    return $this->_totalCount;
}

            
hasEventHandlers() public メソッド

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

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

public boolean hasEventHandlers ( $name )
$name string

イベント名

return 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 string

プロパティ名

$checkBehaviors boolean

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

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

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

プロパティが定義されるのは、

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

参照

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

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

return boolean

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

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

            
init() public メソッド

DB接続コンポーネントを初期化します。

このメソッドは、有効なDB接続を参照するように、$db プロパティ (設定されている場合) を初期化します。

public void init ( )
throws yii\base\InvalidConfigException

$db が無効な場合。

                public function init()
{
    parent::init();
    if ($this->db !== null) {
        $this->db = Instance::ensure($this->db);
    }
}

            
off() public メソッド

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

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

このメソッドは on() の反対です。

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

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

public boolean off ( $name, $handler null )
$name string

イベント名

$handler callable|null

削除するイベントハンドラ。nullの場合、指定されたイベントにアタッチされたすべてのハンドラが削除されます。

return 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 string

イベント名

$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]);
    }
}

            
prepare() public メソッド

定義元: yii\data\BaseDataProvider::prepare()

データモデルとキーを準備します。

このメソッドは、getModels() および getKeys() を介して取得できるデータモデルとキーを準備します。

このメソッドは、以前に呼び出されていない場合、getModels() および getKeys() によって暗黙的に呼び出されます。

public void prepare ( $forcePrepare false )
$forcePrepare boolean

以前にデータ準備が完了していても、強制的にデータ準備を行うかどうか。

                public function prepare($forcePrepare = false)
{
    if ($forcePrepare || $this->_models === null) {
        $this->_models = $this->prepareModels();
    }
    if ($forcePrepare || $this->_keys === null) {
        $this->_keys = $this->prepareKeys($this->_models);
    }
}

            
prepareKeys() protected メソッド

現在利用可能なデータモデルに関連付けられたキーを準備します。

protected array prepareKeys ( $models )
$models array

利用可能なデータモデル

return array

キー

                protected function prepareKeys($models)
{
    $keys = [];
    if ($this->key !== null) {
        foreach ($models as $model) {
            if (is_string($this->key)) {
                $keys[] = $model[$this->key];
            } else {
                $keys[] = call_user_func($this->key, $model);
            }
        }
        return $keys;
    } elseif ($this->query instanceof ActiveQueryInterface) {
        /* @var $class \yii\db\ActiveRecordInterface */
        $class = $this->query->modelClass;
        $pks = $class::primaryKey();
        if (count($pks) === 1) {
            $pk = $pks[0];
            foreach ($models as $model) {
                $keys[] = $model[$pk];
            }
        } else {
            foreach ($models as $model) {
                $kk = [];
                foreach ($pks as $pk) {
                    $kk[$pk] = $model[$pk];
                }
                $keys[] = $kk;
            }
        }
        return $keys;
    }
    return array_keys($models);
}

            
prepareModels() protected メソッド

現在のページで利用可能になるデータモデルを準備します。

protected array prepareModels ( )
return array

利用可能なデータモデル

                protected function prepareModels()
{
    if (!$this->query instanceof QueryInterface) {
        throw new InvalidConfigException('The "query" property must be an instance of a class that implements the QueryInterface e.g. yii\db\Query or its subclasses.');
    }
    $query = clone $this->query;
    if (($pagination = $this->getPagination()) !== false) {
        $pagination->totalCount = $this->getTotalCount();
        if ($pagination->totalCount === 0) {
            return [];
        }
        $query->limit($pagination->getLimit())->offset($pagination->getOffset());
    }
    if (($sort = $this->getSort()) !== false) {
        $query->addOrderBy($sort->getOrders());
    }
    return $query->all($this->db);
}

            
prepareTotalCount() protected メソッド

このデータプロバイダにおけるデータモデルの総数を示す値を返します。

protected integer prepareTotalCount ( )
return integer

このデータプロバイダ内のデータモデルの総数。

                protected function prepareTotalCount()
{
    if (!$this->query instanceof QueryInterface) {
        throw new InvalidConfigException('The "query" property must be an instance of a class that implements the QueryInterface e.g. yii\db\Query or its subclasses.');
    }
    $query = clone $this->query;
    return (int) $query->limit(-1)->offset(-1)->orderBy([])->count('*', $this->db);
}

            
refresh() public メソッド

定義元: yii\data\BaseDataProvider::refresh()

データプロバイダをリフレッシュします。

このメソッドを呼び出した後、getModels(), getKeys() または getTotalCount() が再度呼び出された場合、クエリが再実行され、利用可能な最新のデータが返されます。

public void refresh ( )

                public function refresh()
{
    $this->_totalCount = null;
    $this->_models = null;
    $this->_keys = null;
}

            
setKeys() public メソッド

定義元: yii\data\BaseDataProvider::setKeys()

データモデルに関連付けられたキー値を設定します。

public void setKeys ( $keys )
$keys array

$modelsに対応するキー値のリスト。

                public function setKeys($keys)
{
    $this->_keys = $keys;
}

            
setModels() public メソッド

定義元: yii\data\BaseDataProvider::setModels()

現在のページにおけるデータモデルを設定します。

public void setModels ( $models )
$models array

現在のページのモデル

                public function setModels($models)
{
    $this->_models = $models;
}

            
setPagination() public メソッド

定義元: yii\data\BaseDataProvider::setPagination()

このデータプロバイダのページネーションを設定します。

public void setPagination ( $value )
$value array|yii\data\Pagination|boolean

このデータプロバイダで使用されるページネーション。これは以下のいずれかになります。

  • ページネーションオブジェクトを作成するための設定配列。 "class"要素はデフォルトで 'yii\data\Pagination' になります。
  • yii\data\Pagination またはそのサブクラスのインスタンス
  • ページネーションを無効にする必要がある場合は false。
throws yii\base\InvalidArgumentException

                public function setPagination($value)
{
    if (is_array($value)) {
        $config = ['class' => Pagination::className()];
        if ($this->id !== null) {
            $config['pageParam'] = $this->id . '-page';
            $config['pageSizeParam'] = $this->id . '-per-page';
        }
        $this->_pagination = Yii::createObject(array_merge($config, $value));
    } elseif ($value instanceof Pagination || $value === false) {
        $this->_pagination = $value;
    } else {
        throw new InvalidArgumentException('Only Pagination instance, configuration array or false is allowed.');
    }
}

            
setSort() public メソッド

このデータプロバイダのソート定義を設定します。

public void setSort ( $value )
$value array|yii\data\Sort|boolean

このデータプロバイダで使用されるソート定義。これは以下のいずれかになります。

  • ソート定義オブジェクトを作成するための設定配列。 "class"要素はデフォルトで 'yii\data\Sort' になります。
  • yii\data\Sort またはそのサブクラスのインスタンス
  • ソートを無効にする必要がある場合は false。
throws yii\base\InvalidArgumentException

                public function setSort($value)
{
    parent::setSort($value);
    if ($this->query instanceof ActiveQueryInterface && ($sort = $this->getSort()) !== false) {
        /* @var $modelClass Model */
        $modelClass = $this->query->modelClass;
        $model = $modelClass::instance();
        if (empty($sort->attributes)) {
            foreach ($model->attributes() as $attribute) {
                $sort->attributes[$attribute] = [
                    'asc' => [$attribute => SORT_ASC],
                    'desc' => [$attribute => SORT_DESC],
                ];
            }
        }
        if ($sort->modelClass === null) {
            $sort->modelClass = $modelClass;
        }
    }
}

            
setTotalCount() public メソッド

定義元: yii\data\BaseDataProvider::setTotalCount()

データモデルの総数を設定します。

public void setTotalCount ( $value )
$value integer

データモデルの総数。

                public function setTotalCount($value)
{
    $this->_totalCount = $value;
}

            
trigger() public メソッド

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

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

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

public void trigger ( $name, yii\base\Event $event null )
$name string

イベント名

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