PHP Class yii\data\SqlDataProvider
SqlDataProvider provides data in terms of arrays, each representing a row of query result.
Like other data providers, SqlDataProvider also supports sorting and pagination.
It does so by modifying the given [[sql]] statement with "ORDER BY" and "LIMIT"
clauses. You may configure the [[sort]] and [[pagination]] properties to
customize sorting and pagination behaviors.
SqlDataProvider may be used in the following way:
php
$count = Yii::$app->db->createCommand('
SELECT COUNT(*) FROM user WHERE status=:status
', [':status' => 1])->queryScalar();
$dataProvider = new SqlDataProvider([
'sql' => 'SELECT * FROM user WHERE status=:status',
'params' => [':status' => 1],
'totalCount' => $count,
'sort' => [
'attributes' => [
'age',
'name' => [
'asc' => ['first_name' => SORT_ASC, 'last_name' => SORT_ASC],
'desc' => ['first_name' => SORT_DESC, 'last_name' => SORT_DESC],
'default' => SORT_DESC,
'label' => 'Name',
],
],
],
'pagination' => [
'pageSize' => 20,
],
]);
get the user records in the current page
$models = $dataProvider->getModels();
Note: if you want to use the pagination feature, you must configure the [[totalCount]] property
to be the total number of rows (without pagination). And if you want to use the sorting feature,
you must configure the [[sort]] property so that the provider knows which columns can be sorted.
For more details and usage information on SqlDataProvider, see the
guide article on data providers.
ファイルを表示
Open project: yiisoft/yii2
Class Usage Examples
Public Properties
Property |
Type |
Description |
|
$db |
|
the DB connection object or the application component ID of the DB connection.
Starting from version 2.0.2, this can also be a configuration array for creating the object. |
|
$key |
|
the column that is used as the key of the data models.
This can be either a column name, or a callable that returns the key value of a given data model.
If this is not set, the keys of the [[models]] array will be used. |
|
$params |
|
parameters (name=>value) to be bound to the SQL statement. |
|
$sql |
|
the SQL statement to be used for fetching data rows. |
|
Public Methods
Method |
Description |
|
init ( ) |
Initializes the DB connection component. |
|
Protected Methods
Method Details
This method will initialize the [[db]] property to make sure it refers to a valid DB connection.
prepareKeys()
protected method
prepareModels()
protected method
prepareTotalCount()
protected method
Property Details
the DB connection object or the application component ID of the DB connection.
Starting from version 2.0.2, this can also be a configuration array for creating the object.
the column that is used as the key of the data models.
This can be either a column name, or a callable that returns the key value of a given data model.
If this is not set, the keys of the [[models]] array will be used.
$params public_oe property
parameters (name=>value) to be bound to the SQL statement.
the SQL statement to be used for fetching data rows.