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.
Since: 2.0
Author: Qiang Xue ([email protected])
Inheritance: extends BaseDataProvider
Show file 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 Description
prepareKeys ( $models )
prepareModels ( )
prepareTotalCount ( )

Method Details

init() public method

This method will initialize the [[db]] property to make sure it refers to a valid DB connection.
public init ( )

prepareKeys() protected method

protected prepareKeys ( $models )

prepareModels() protected method

protected prepareModels ( )

prepareTotalCount() protected method

protected prepareTotalCount ( )

Property Details

$db public property

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.
public $db

$key public property

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.
public $key

$params public property

parameters (name=>value) to be bound to the SQL statement.
public $params

$sql public property

the SQL statement to be used for fetching data rows.
public $sql