今天来记录下yii2 的数据提供器,嗯,主要的流程呢,还是以代码说话吧
活动数据提供器
这里呢,我们会用到 ActiveDataProvider 这个类,传到数组元素呢,可以是查询条件,也可以包含分页信息
1 /* 方法1 */ 2 html' target='_blank'>public function actionShow() 3 { 4 $provider = new ActiveDataProvider([ 5 'query' => Country::find(), 6 'pagination' => [ 7 'pageSize' => 4, 8 ], 9 ]);10 $data = $provider->getModels();11 var_dump($data);12 }13 /* 方法2: 活动数据提取器的使用 */14 public function actionActiveData()15 {16 $query = new Query();17 $provider = new ActiveDataProvider([18 'query' => $query -> from('country'),19 'pagination' => [20 'pageSize' => 521 ]22 ]);23 $data = $provider->getModels();24 var_dump( $data );25 }
数组数据提供器
这个数据提供器,用到的 是 ArrayDataProvider 类
/* 数组数据提供器 */public function actionArrayData(){ $query = new Query(); $provider = new ArrayDataProvider([ 'allModels' => $query -> from('country')->all(), 'sort' => [ 'attributes' => ['code' , 'name'] ], 'pagination' => [ 'pageSize' => 5 ] ]); $data = $provider->getModels(); print_r($data);}
sql 数据提供器
在里用到到数据提供器类呢,就是 SqlDataProvider 类,里面的参数,见代码
1 /* sql 数据提供器的使用 */ 2 public function actionSqlData() 3 { 4 $count = Yii::$app->db->createCommand(' 5 select count(*) from country where code=:code 6 ' ,[':code' => 'US'])->queryScalar(); 7 $provider = new SqlDataProvider([ 8 'sql' => ' select * from country where code=:code' , #sql 语句 9 'params'=> [':code' => 'US'], #查询条件对应的值 和 sql 语句中的 :code 对应10 'totalCount'=>$count , #这里是数据总数11 'sort' => [ #这里就是在排序了12 'attributes' => [13 'code',14 ]15 ],16 'pagination' => [ #分页信息17 'pageSize' => 518 ]19 ]);20 $data = $provider-> getModels();21 var_dump($data);22 }PHP编程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答