亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

YII2框架中ActiveDataProvider與GridView的配合使用操作示例

 更新時間:2020年03月18日 11:42:44   作者:懷素真  
這篇文章主要介紹了YII2框架中ActiveDataProvider與GridView的配合使用操作,結合實例形式分析了YII2框架中ActiveDataProvider與GridView的功能及配合使用相關操作實現技巧,需要的朋友可以參考下

本文實例講述了YII2框架中ActiveDataProvider與GridView的配合使用操作。分享給大家供大家參考,具體如下:

YII2中ActiveDataProvider可以使用yii\db\Query或yii\db\ActiveQuery的對象,方便我們構造復雜的查詢篩選語句。

配合強大的GridView,快速的顯示我們想要的數據。

通過上面的兩個工具,我們快速的顯示用戶表信息。用戶表結構如下:

我們創(chuàng)建一個用戶模型MyUser.php,代碼如下:

<?php

namespace app\models;

use yii\db\ActiveRecord;
use yii\data\ActiveDataProvider;

class MyUser extends ActiveRecord
{

  //返回要操作的表名
  public static function tableName()
  {
    return '{{%user}}';
  }

  //設置規(guī)則
  //注意,如果沒有給字段設置規(guī)則,GridView的篩選項是不會出現的
  public function rules()
  {
    return [
      [['id', 'name', 'sex', 'age'], 'trim'],
      [['id', 'sex', 'age'], 'integer'],
      ['name', 'string'],
    ];
  }

  //查詢
  public function search($params)
  {
    //首先我們先獲取一個ActiveQuery
    $query = self::find();
    //然后創(chuàng)建一個ActiveDataProvider對象
    $provider = new ActiveDataProvider([
      //為ActiveDataProvider對象提供一個查詢對象
      'query' => $query,
      //設置分頁參數
      'pagination' => [
        //分頁大小
        'pageSize' => 3,
        //設置地址欄當前頁數參數名
        'pageParam' => 'p',
        //設置地址欄分頁大小參數名
        'pageSizeParam' => 'pageSize',
      ],
      //設置排序
      'sort' => [
        //默認排序方式
        'defaultOrder' => [
          'id' => SORT_DESC,
        ],
        //參與排序的字段
        'attributes' => [
          'id', 'name', 'sex', 'age'
        ],
      ],
    ]);

    //如果驗證沒通過,直接返回
    if (!($this->load($params) && $this->validate())) {
      return $provider;
    }

    //增加過濾條件
    $query->andFilterWhere(['id' => $this->id])
      ->andFilterWhere(['like', 'name', $this->name])
      ->andFilterWhere(['sex' => $this->sex])
      ->andFilterWhere(['age' => $this->age]);

    return $provider;
  }
}

然后,創(chuàng)建控制器TestController.php,代碼如下:

<?php

namespace app\controllers;

use YII;
use yii\web\Controller;
use app\models\MyUser;

class TestController extends Controller
{
  public function actionTest()
  {

    $user = new MyUser();
    //調用模型search方法,把get參數傳進去
    $provider = $user->search(YII::$app->request->get());

    return $this->render('test', [
      'model' => $user,
      'provider' => $provider,
    ]);
  }
}

視圖頁面test.php,代碼如下:

<?php
use yii\helpers\Url;
use yii\helpers\Html;
use yii\grid\GridView;
?>

<div id="page-wrapper">
  <div class="row">
    <div class="col-lg-12">
      <button class="btn btn-primary" id="showSelBtn">顯示我選中的</button>
    </div>
  </div>
  <div class="row">
    <div class="col-lg-12">
      <?php echo GridView::widget([
        //設置GridView的ID
        'id' => 'myUserGridView',
        //設置數據提供器
        'dataProvider' => $provider,
        //設置篩選模型
        'filterModel' => $model,
        'columns' => [
          //復選框列
          ['class' => 'yii\grid\CheckboxColumn'],
          //顯示序號列
          ['class' => 'yii\grid\SerialColumn'],
          [
            //設置字段顯示標題
            'label' => 'ID',
            //字段名
            'attribute' => 'id',
            //格式化
            'format' => 'raw',
            //設置單元格樣式
            'headerOptions' => [
              'style' => 'width:120px;',
            ],
          ],
          [
            'label' => '姓名',
            'attribute' => 'name',
            'format' => 'raw',
          ],
          [
            'label' => '頭像',
            'attribute' => 'head_img',
            'format' => 'raw',
            //通過該返回值,我們可以任意控制列數據的顯示
            //$data指向的是當前行的數據結果集
            'value' => function ($data) {
              return '<img src="' . '/' . ltrim($data->head_img, '/') . '" width="60px">';
            },
          ],
          [
            'label' => '性別',
            //設置篩選選項
            'filter' => [0 => '男', 1 => '女'],
            'attribute' => 'sex',
            'format' => 'raw',
            'value' => function ($data) {
              return ($data->sex == 0) ? '男' : '女';
            }
          ],
          [
            'label' => '年齡',
            'attribute' => 'age',
            'format' => 'raw',
          ],
          [
            'header' => '操作',
            'class' => 'yii\grid\ActionColumn',
            //設置顯示模板
            'template' => '{upd} {del}',
            //下面的按鈕設置,與上面的模板設置相關聯
            'buttons' => [
              'upd' => function ($url, $model, $key) {
                return '<a href="' . Url::toRoute(['test/upd', 'id' => $key]) . '" rel="external nofollow" class="btn btn-warning">修改</a>';
              },
              'del' => function ($url, $model, $key) {
                return '<a href="' . Url::toRoute(['test/del', 'id' => $key]) . '" rel="external nofollow" class="btn btn-danger">刪除</a>';
              },
            ],
          ],
        ],
      ]); ?>
    </div>
  </div>
</div>

<?php echo Html::jsFile('@web/js/jquery-3.3.1.min.js'); ?>
<script type="text/javascript">
  $("#showSelBtn").on("click", function () {
    var keys = $("#myUserGridView").yiiGridView('getSelectedRows');
    alert(keys);
  });
</script>

顯示結果如下:

更多關于Yii相關內容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優(yōu)秀開發(fā)框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總

希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。

相關文章

  • 全面了解PHP中的全局變量

    全面了解PHP中的全局變量

    下面小編就為大家?guī)硪黄媪私釶HP中的全局變量。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 詳解PHP編碼轉換函數應用技巧

    詳解PHP編碼轉換函數應用技巧

    在PHP語言中mb_convert_encoding是一個PHP編碼轉換函數,可以幫助我們用來實現對多字節(jié)字符串編碼的轉換。下面將會為大家進行詳細介紹。
    2016-10-10
  • YII2框架中ActiveDataProvider與GridView的配合使用操作示例

    YII2框架中ActiveDataProvider與GridView的配合使用操作示例

    這篇文章主要介紹了YII2框架中ActiveDataProvider與GridView的配合使用操作,結合實例形式分析了YII2框架中ActiveDataProvider與GridView的功能及配合使用相關操作實現技巧,需要的朋友可以參考下
    2020-03-03
  • Zend Framework數據庫操作技巧總結

    Zend Framework數據庫操作技巧總結

    這篇文章主要介紹了Zend Framework數據庫操作技巧,結合實例形式總結分析了Zend Framework針對數據庫操作的常見函數、常用操作及相關注意事項,需要的朋友可以參考下
    2017-02-02
  • Symfony學習十分鐘入門經典教程

    Symfony學習十分鐘入門經典教程

    這篇文章主要介紹了Symfony學習十分鐘入門教程,詳細介紹了Symfony的安裝配置,項目初始化,建立Bundle,設計實體,添加約束,增刪改查等基本操作技巧,需要的朋友可以參考下
    2016-02-02
  • CI(Codeigniter)的Setting增強配置類實例

    CI(Codeigniter)的Setting增強配置類實例

    這篇文章主要介紹了Codeigniter的Setting增強配置類,結合實例形式較為詳細的分析了Codeigniter增強配置類的具體實現步驟與相關技巧,需要的朋友可以參考下
    2016-01-01
  • 基于Codeigniter框架實現的student信息系統(tǒng)站點動態(tài)發(fā)布功能詳解

    基于Codeigniter框架實現的student信息系統(tǒng)站點動態(tài)發(fā)布功能詳解

    這篇文章主要介紹了基于Codeigniter框架實現的student信息系統(tǒng)站點動態(tài)發(fā)布功能,詳細分析了動態(tài)站點相關的數據庫sql語句、MVC各個模塊功能與實現技巧,需要的朋友可以參考下
    2017-03-03
  • 詳談PHP中public,private,protected,abstract等關鍵字的用法

    詳談PHP中public,private,protected,abstract等關鍵字的用法

    下面小編就為大家分享一篇詳談PHP中public,private,protected,abstract等關鍵字的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • PHP判斷json格式是否正確的實現代碼

    PHP判斷json格式是否正確的實現代碼

    本文給大家分享PHP判斷json格式是否正確的實現代碼,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-09-09
  • PHP編寫RESTful接口的方法

    PHP編寫RESTful接口的方法

    這篇文章主要為大家詳細介紹了PHP編寫RESTful接口的方法,如何使用PHP編寫RESTful接口,感興趣的小伙伴們可以參考一下
    2016-02-02

最新評論