• 我 && yii2 (二)


    今天来记录下yii2 的数据提供器,嗯,主要的流程呢,还是以代码说话吧

    活动数据提供器

    这里呢,我们会用到 ActiveDataProvider 这个类,传到数组元素呢,可以是查询条件,也可以包含分页信息

     1 /* 方法1 */
     2 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'  => 5
    21         ]
    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'  => 5
    18         ]
    19     ]);
    20     $data = $provider-> getModels();
    21     var_dump($data);
    22 }
  • 相关阅读:
    Python变量、标识符
    PyCharm中设置作者信息
    去中心化
    复杂逻辑---取数
    行政机构处理
    2020.11案例分析
    中间表
    软考--项目管理名词
    软考--近6次上午考点分析
    软考--学习方法、做题方法
  • 原文地址:https://www.cnblogs.com/zeopean/p/5360830.html
Copyright © 2020-2023  润新知