|
To use yii\data\ArrayDataProvider, you should specify the allModels property as the big array. Elements in the big array can be either associative arrays (e.g. query results of DAO) or objects (e.g. Active Record instances).
|
|
use yii\data\ArrayDataProvider; $data = [ ['id' => 1, 'name' => 'name 1', ...], ['id' => 2, 'name' => 'name 2', ...], ... ['id' => 100, 'name' => 'name 100', ...], ]; $provider = new ArrayDataProvider([ 'allModels' => $data, 'pagination' => [ 'pageSize' => 10, ], 'sort' => [ 'attributes' => ['id', 'name'], ], ]); // obtient les lignes de la page couramment requise $rows = $provider->getModels();
|
|
Info: The totalCount property is required only if you need to paginate the data. This is because the SQL statement specified via sql will be modified by the provider to return only the currently requested page of data. The provider still needs to know the total number of data items in order to correctly calculate the number of pages available.
|
|
use yii\data\ArrayDataProvider; $data = [ ['id' => 1, 'name' => 'name 1', ...], ['id' => 2, 'name' => 'name 2', ...], ... ['id' => 100, 'name' => 'name 100', ...], ]; $provider = new ArrayDataProvider([ 'allModels' => $data, 'pagination' => [ 'pageSize' => 10, ], 'sort' => [ 'attributes' => ['id', 'name'], ], ]); // 現在リクエストされているページの行を返す $rows = $provider->getModels();
|
|
При возврате данных с помощью провайдера, часто требуется идентификация каждого элемента по уникальному ключу. Например, если данные - это какая-то информация по клиенту, то возможно понадобится использовать ID клиента, как ключ для данных по каждому клиенту. Провайдер данных через yii\data\DataProviderInterface::getModels() может вернуть список из ключей и соответствующего набора данных. Например,
|