2016-11-29 7 views
1

申し訳ありませんが、私はこの質問に対する回答を探していましたが、まだ見つかりませんでした。yii2テーブル内のすべてのデータがページングエラーで表示されない

私たちはこのプロジェクトYii2とAngularJSを持っています。問題は、Yiiがテーブルから20項目しか返さないということです。私は、ベンダーに行って、私はこのライン変更ページネーションファイル設立:

public $defaultPageSize = 0; 
public $pageSizeLimit = [0, 50]; 

public $defaultPageSize = 20; 
public $pageSizeLimit = [1, 50]; 

をそして、それはそれは、テーブル上のすべてのデータを表示する唯一の方法ですが、私はそれを行う必要がありますベンダーのファイルの外側にあるファイル。

どうすればいいですか? 変更する必要があるファイルは何ですか?

私は設定で試しましたが、動作しません。表示するすべてのデータで同じ問題が発生するため、グローバルに設定する必要があります。

ご協力いただきありがとうございます。

答えて

3

最も簡単な方法は、ページ設定を無効にすることです。偽などに改ページを設定する:あなたはあなたができる

return new ActiveDataProvider([ 
    'pagination' => false, 
]); 

またはモデルで、あなたの問題に関連するdataProviderを作成しているTIFあなたは改ページに

+0

返信ありがとうございます。私はデータプロバイダを作成する場所がわからないので、Angularjsを持っているため、アプリケーションのすべてのフォームに適用できます。モデルでページ分割を設定するにはどうすればよいですか? – Andrs888

+1

通常、activeRecordのdataProviderは、modelSearchのcreate関数です(activeRecordのコードスキャナーを作成するためにgiiを使用する場合) - modelSeachの検索機能で必要なモデルのページングを置き換えることができます。 – scaisEdge

+0

モデルでは動作しません。どのように私はそれをグローバルに行うことができますか?私には少なくとも35の書式があります。それはアプリのparamsでそれを行うことは可能でしょうか? – Andrs888

1

@scaisEdge's answerを設定することができますすることは正しく、私の意見にするための最良の方法です実際に大きなデータセットを誤ってクエリすることを避けるために行ってください。

ただし、dependency injectionを使用すると、ページネーションの初期値を設定できます。あなたのエントリスクリプトで追加します。

\Yii::$container->set('yii\data\ActiveDataProvider', ['pagination' => false]); 

それが改ページでそれを設定すると、データプロバイダyii\data\ActiveDataProviderなくyii\data\Paginationに設定されていることに注意してくださいページネーションを使用するすべてのものに影響を与えます。

+0

正解(と良い)答え.. – scaisEdge

関連する問題