0 フォロワー

クラス yii\data\Pagination

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

Pagination は、データ項目のページネーションに関連する情報を表します。

データを複数のページでレンダリングする必要がある場合、Pagination は、合計項目数ページサイズ現在のページなどの情報を表すために使用できます。これらの情報は、ページャーに渡して、ページネーションボタンまたはリンクをレンダリングできます。

次の例は、Pagination オブジェクトを作成し、それをページャーに渡す方法を示しています。

コントローラアクション

public function actionIndex()
{
    $query = Article::find()->where(['status' => 1]);
    $countQuery = clone $query;
    $pages = new Pagination(['totalCount' => $countQuery->count()]);
    $models = $query->offset($pages->offset)
        ->limit($pages->limit)
        ->all();

    return $this->render('index', [
         'models' => $models,
         'pages' => $pages,
    ]);
}

ビュー

foreach ($models as $model) {
    // display $model here
}

// display pagination
echo LinkPager::widget([
    'pagination' => $pages,
]);

Pagination の詳細と使用方法については、ページネーションに関するガイド記事を参照してください。

公開プロパティ

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

プロパティ 説明 定義元
$defaultPageSize integer デフォルトのページサイズ。 yii\data\Pagination
$forcePageParam boolean createUrl()によって作成された URL に常にページパラメータを含めるかどうか。 yii\data\Pagination
$limit integer データの制限。 yii\data\Pagination
$offset integer データのオフセット。 yii\data\Pagination
$page integer 0から始まる現在のページ番号。 yii\data\Pagination
$pageCount integer ページ数。 yii\data\Pagination
$pageParam string 現在のページインデックスを格納するパラメータの名前。 yii\data\Pagination
$pageSize integer 1ページあたりの項目数。 yii\data\Pagination
$pageSizeLimit array|false ページサイズの制限。 yii\data\Pagination
$pageSizeParam string ページサイズを格納するパラメータの名前。 yii\data\Pagination
$params array|null 現在のページ番号を取得し、新しいページネーション URL を作成するために使用されるパラメータ(名前 => 値)。 yii\data\Pagination
$route string|null ページ付けされたコンテンツを表示するためのコントローラアクションのルート。 yii\data\Pagination
$totalCount integer 項目の総数。 yii\data\Pagination
$urlManager yii\web\UrlManager|null ページネーション URL の作成に使用される URL マネージャ。 yii\data\Pagination
$validatePage boolean $pageが有効範囲内にあるかどうかをチェックするかどうか。 yii\data\Pagination

公開メソッド

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

メソッド 説明 定義元
__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
createUrl() 指定されたページ番号でページネーションに適した URL を作成します。 yii\data\Pagination
getLimit() yii\data\Pagination
getLinks() 最初のページ、最後のページ、次のページ、前のページに移動するためのリンクのセット全体を返します。 yii\data\Pagination
getOffset() yii\data\Pagination
getPage() 0から始まる現在のページ番号を返します。 yii\data\Pagination
getPageCount() yii\data\Pagination
getPageSize() 1ページあたりの項目数を返します。 yii\data\Pagination
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\BaseObject
hasProperty() プロパティが定義されているかどうかを示す値を返します。 yii\base\BaseObject
init() オブジェクトを初期化します。 yii\base\BaseObject
setPage() 現在のページ番号を設定します。 yii\data\Pagination
setPageSize() yii\data\Pagination

保護されたメソッド

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

メソッド 説明 定義元
getQueryParam() 指定されたクエリパラメータの値を返します。 yii\data\Pagination

定数

継承された定数を隠す

定数 説明 定義元

プロパティの詳細

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

$defaultPageSize 公開プロパティ

デフォルトのページサイズ。このプロパティは、$pageSize$paramsからの$pageSizeParamによってページサイズを決定できない場合に返されます。

$forcePageParam 公開プロパティ

createUrl()によって作成された URL に常にページパラメータを含めるかどうか。false で、$page が 0 の場合、ページパラメータは URL に含まれません。

public boolean $forcePageParam true
$limit 公開プロパティ

データの制限。これは、現在のデータのページを取得するための SQL ステートメントの LIMIT 値を設定するために使用できます。ページサイズが無限の場合は、値 -1 が返されることに注意してください。

public integer $limit null
$offset public プロパティ

データのオフセット。これは、データの現在のページをフェッチするためのSQLステートメントでOFFSET値を設定するために使用される場合があります。

public integer $offset null
$page public プロパティ

0から始まる現在のページ番号。

public integer $page null
$pageCount public プロパティ

ページ数。

public integer $pageCount null
$pageParam public プロパティ

現在のページインデックスを格納するパラメータの名前。

参照:$params

public string $pageParam 'page'
$pageSize public プロパティ

ページあたりの項目数。1未満の場合は、ページサイズは無限であり、したがって単一のページにすべての項目が含まれることを意味します。

public integer $pageSize null
$pageSizeLimit public プロパティ

ページサイズの制限。最初の配列要素は最小ページサイズを定義し、2番目の要素は最大ページサイズを定義します。これがfalseの場合、$pageSizeは常に$defaultPageSizeの値を返す必要があることを意味します。

public array|false $pageSizeLimit = [
    
1,
    
50,
]
$pageSizeParam public プロパティ

ページサイズを格納するパラメータの名前。

参照:$params

public string $pageSizeParam 'per-page'
$params public プロパティ

現在のページ番号を取得し、新しいページネーションURLを作成するために使用する必要があるパラメータ(name => value)。設定されていない場合は、$_GETのすべてのパラメータが代わりに使用されます。

すべてのリンクにハッシュを追加するには、array_merge($_GET, ['#' => 'my-hash'])を使用します。

$pageParamでインデックス付けされた配列要素は、現在のページ番号(デフォルトは0)と見なされます。一方、$pageSizeParamでインデックス付けされた要素は、ページサイズ(デフォルトは$defaultPageSize)として扱われます。

public array|null $params null
$route public プロパティ

ページングされたコンテンツを表示するためのコントローラアクションのルート。設定されていない場合は、現在リクエストされているルートを使用することを意味します。

public string|null $route null
$totalCount public プロパティ

項目の総数。

public integer $totalCount 0
$urlManager public プロパティ

ページネーションURLの作成に使用されるURLマネージャー。設定されていない場合は、「urlManager」アプリケーションコンポーネントが使用されます。

$validatePage public プロパティ

$page が有効な範囲内にあるかどうかをチェックするかどうか。このプロパティが true の場合、$page の値は常に 0 と ($pageCount-1) の間になります。$pageCount$totalCount の正しい値に依存しますが、場合によっては (例: MongoDB) 利用できないことがあるため、ページ番号の検証を無効にするためにこのプロパティを false に設定することができます。そうすることで、$page$params 内の $pageParam によってインデックスされた値を返します。

public boolean $validatePage true

メソッド詳細

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

__call() public メソッド

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

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

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

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

メソッド名

$params array

$params

メソッドのパラメータ return

mixed

メソッドの戻り値 throws

yii\base\UnknownMethodException

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

            
ソースコード

__construct() public メソッド

コンストラクタ。

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

  • デフォルトの実装では、次の2つのことを行います。
  • 与えられた設定 $config でオブジェクトを初期化します。

init() を呼び出します。

  • 子クラスでこのメソッドがオーバーライドされる場合、推奨されるのは
  • コンストラクタの最後のパラメータが、ここでの $config のような設定配列であること。
コンストラクタの最後に親の実装を呼び出すこと。
public void __construct ( $config = [] ) array

$config

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

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

__get() public メソッド

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

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

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

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

public mixed __get ( $name )

メソッドのパラメータ return

$name

メソッドの戻り値 プロパティ名

プロパティの値

メソッドの戻り値 yii\base\UnknownPropertyException

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

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

            
yii\base\InvalidCallException

プロパティが書き込み専用の場合

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

__isset() public メソッド

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

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

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

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

メソッドのパラメータ boolean

public boolean __isset ( $name )

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

            
$name

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

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

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

__set() public メソッド

定義元: yii\base\BaseObject::__set()
$name string

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

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

$name

メソッドの戻り値 プロパティ名

プロパティの値

メソッドの戻り値 yii\base\UnknownPropertyException

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

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

            
public void __set ( $name, $value )

$value

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

$name

プロパティが読み取り専用の場合

__unset() public メソッド

定義元: yii\base\BaseObject::__unset()
$name string

public mixed __get ( $name )

メソッドの戻り値 yii\base\UnknownPropertyException

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

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

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

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

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

public void __unset ( $name )

  • $name
  • プロパティが読み取り専用の場合。

canGetProperty() public メソッド

定義元: yii\base\BaseObject::canGetProperty()
$name string

public mixed __get ( $name )

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

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

メソッドのパラメータ boolean

クラスに、指定された名前のメンバー変数がある場合 ($checkVars が true の場合)。

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

            
canSetProperty() public メソッド

定義場所: yii\base\BaseObject::canSetProperty()

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

プロパティが書き込み可能であるための条件は以下のとおりです。

  • クラスが指定された名前に関連付けられたセッターメソッドを持っている場合(この場合、プロパティ名は大小文字を区別しません)。
  • プロパティが読み取り専用の場合。

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

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

public mixed __get ( $name )

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

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

メソッドのパラメータ boolean

プロパティが書き込み可能かどうか

                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 ( )
メソッドのパラメータ string

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

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

            
createUrl() public メソッド

指定されたページ番号でページネーションに適した URL を作成します。

このメソッドは、主にページングを実行するために使用されるURLを作成する際にページャーによって呼び出されます。

参照

public string createUrl ( $page, $pageSize null, $absolute false )
$page integer

URLが指す必要がある、ゼロベースのページ番号。

$pageSize integer|null

各ページの項目数。設定されていない場合は、$pageSize の値が使用されます。

$absolute boolean

絶対URLを作成するかどうか。デフォルトは false です。

メソッドのパラメータ string

作成されたURL

                public function createUrl($page, $pageSize = null, $absolute = false)
{
    $page = (int) $page;
    $pageSize = (int) $pageSize;
    if (($params = $this->params) === null) {
        $request = Yii::$app->getRequest();
        $params = $request instanceof Request ? $request->getQueryParams() : [];
    }
    if ($page > 0 || $page == 0 && $this->forcePageParam) {
        $params[$this->pageParam] = $page + 1;
    } else {
        unset($params[$this->pageParam]);
    }
    if ($pageSize <= 0) {
        $pageSize = $this->getPageSize();
    }
    if ($pageSize != $this->defaultPageSize) {
        $params[$this->pageSizeParam] = $pageSize;
    } else {
        unset($params[$this->pageSizeParam]);
    }
    $params[0] = $this->route === null ? Yii::$app->controller->getRoute() : $this->route;
    $urlManager = $this->urlManager === null ? Yii::$app->getUrlManager() : $this->urlManager;
    if ($absolute) {
        return $urlManager->createAbsoluteUrl($params);
    }
    return $urlManager->createUrl($params);
}

            
getLimit() public メソッド

public integer getLimit ( )
メソッドのパラメータ integer

データの制限。これは、現在のデータのページを取得するための SQL ステートメントの LIMIT 値を設定するために使用できます。ページサイズが無限の場合は、値 -1 が返されることに注意してください。

                public function getLimit()
{
    $pageSize = $this->getPageSize();
    return $pageSize < 1 ? -1 : $pageSize;
}

            
getLinks() public メソッド

最初のページ、最後のページ、次のページ、前のページに移動するためのリンクのセット全体を返します。

public array getLinks ( $absolute false )
$absolute boolean

生成されたURLを絶対URLにするかどうか。

メソッドのパラメータ array

ナビゲーション用のリンク。配列のキーはリンクの目的(例:LINK_FIRST)を指定し、配列の値は対応するURLです。

getOffset() public メソッド

public integer getOffset ( )
メソッドのパラメータ integer

データのオフセット。これは、データの現在のページをフェッチするためのSQLステートメントでOFFSET値を設定するために使用される場合があります。

                public function getOffset()
{
    $pageSize = $this->getPageSize();
    return $pageSize < 1 ? 0 : $this->getPage() * $pageSize;
}

            
getPage() public メソッド

0から始まる現在のページ番号を返します。

public integer getPage ( $recalculate false )
$recalculate boolean

ページサイズと項目数に基づいて現在のページを再計算するかどうか。

メソッドのパラメータ integer

0から始まる現在のページ番号。

                public function getPage($recalculate = false)
{
    if ($this->_page === null || $recalculate) {
        $page = (int) $this->getQueryParam($this->pageParam, 1) - 1;
        $this->setPage($page, true);
    }
    return $this->_page;
}

            
getPageCount() public メソッド

public integer getPageCount ( )
メソッドのパラメータ integer

ページ数

                public function getPageCount()
{
    $pageSize = $this->getPageSize();
    if ($pageSize < 1) {
        return $this->totalCount > 0 ? 1 : 0;
    }
    $totalCount = $this->totalCount < 0 ? 0 : (int) $this->totalCount;
    return (int) (($totalCount + $pageSize - 1) / $pageSize);
}

            
getPageSize() public メソッド

1ページあたりの項目数を返します。

デフォルトでは、このメソッドは $params$pageSizeParam でページサイズを判別しようとします。この方法でページサイズを判別できない場合は、$defaultPageSize が返されます。

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

public integer getPageSize ( )
メソッドのパラメータ integer

ページあたりの項目数。1未満の場合は、ページサイズは無限であり、したがって単一のページにすべての項目が含まれることを意味します。

                public function getPageSize()
{
    if ($this->_pageSize === null) {
        if (empty($this->pageSizeLimit) || !isset($this->pageSizeLimit[0], $this->pageSizeLimit[1])) {
            $pageSize = $this->defaultPageSize;
            $this->setPageSize($pageSize);
        } else {
            $pageSize = (int) $this->getQueryParam($this->pageSizeParam, $this->defaultPageSize);
            $this->setPageSize($pageSize, true);
        }
    }
    return $this->_pageSize;
}

            
getQueryParam() protected メソッド

指定されたクエリパラメータの値を返します。

このメソッドは、$params から指定された名前のパラメーター値を返します。値が存在しない場合は Null が返されます。

protected string|null getQueryParam ( $name, $defaultValue null )
$name string

パラメーター名

$defaultValue string|null

$params に指定されたパラメーターが存在しない場合に返される値。

メソッドのパラメータ string|null

パラメーター値

                protected function getQueryParam($name, $defaultValue = null)
{
    if (($params = $this->params) === null) {
        $request = Yii::$app->getRequest();
        $params = $request instanceof Request ? $request->getQueryParams() : [];
    }
    return isset($params[$name]) && is_scalar($params[$name]) ? $params[$name] : $defaultValue;
}

            
hasMethod() public メソッド

定義場所: yii\base\BaseObject::hasMethod()

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

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

public boolean hasMethod ( $name )
$name string

メソッド名

メソッドのパラメータ boolean

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

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

            
hasProperty() public メソッド

定義場所: yii\base\BaseObject::hasProperty()

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

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

  • クラスが指定された名前に関連付けられたゲッターまたはセッターメソッドを持っている場合(この場合、プロパティ名は大小文字を区別しません)。
  • プロパティが読み取り専用の場合。

参照

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

public mixed __get ( $name )

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

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

メソッドのパラメータ boolean

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

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

            
init() public メソッド

定義場所: yii\base\BaseObject::init()

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

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

public void init ( )

                public function init()
{
}

            
setPage() public メソッド

現在のページ番号を設定します。

public void setPage ( $value, $validatePage false )
$object->property = $value; の実行時に暗黙的に呼び出される PHP のマジックメソッドであるため、このメソッドを直接呼び出さないでください。 integer

現在のページのゼロベースのインデックス。

$validatePage boolean

ページ番号を検証するかどうか。ページ番号を検証するには、$validatePageとこのパラメータの両方がtrueである必要があることに注意してください。

                public function setPage($value, $validatePage = false)
{
    if ($value === null) {
        $this->_page = null;
    } else {
        $value = (int) $value;
        if ($validatePage && $this->validatePage) {
            $pageCount = $this->getPageCount();
            if ($value >= $pageCount) {
                $value = $pageCount - 1;
            }
        }
        if ($value < 0) {
            $value = 0;
        }
        $this->_page = $value;
    }
}

            
setPageSize() public メソッド

public void setPageSize ( $value, $validatePageSize false )
$object->property = $value; の実行時に暗黙的に呼び出される PHP のマジックメソッドであるため、このメソッドを直接呼び出さないでください。 integer

1ページあたりの項目数。

$validatePageSize boolean

ページサイズを検証するかどうか。

                public function setPageSize($value, $validatePageSize = false)
{
    if ($value === null) {
        $this->_pageSize = null;
    } else {
        $value = (int) $value;
        if ($validatePageSize && isset($this->pageSizeLimit[0], $this->pageSizeLimit[1])) {
            if ($value < $this->pageSizeLimit[0]) {
                $value = $this->pageSizeLimit[0];
            } elseif ($value > $this->pageSizeLimit[1]) {
                $value = $this->pageSizeLimit[1];
            }
        }
        $this->_pageSize = $value;
    }
}