国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[yii2小心肝兒]GridView - 大衣篇

skinner / 993人閱讀

摘要:最終版編號生成時間用戶名性別省市搞定,在運行程序,表頭改成編號用戶名生成時間等,不要英文這個問題搞定了。是代表對進行什么樣的格式化,默認來對其處理。分鐘后,我郁悶的回來了,知道這回客戶提了那些亂七八糟的需求么且聽下回分解睡衣篇

增刪改查,數(shù)據(jù)庫操作的四大法寶中最常用的就是查了,一條記錄、幾條記錄、一大堆記錄。對于yii2而言,尤其后臺,GridView是最常用且好用的數(shù)據(jù)列表部件,今天就說一說。

yiigridGridView;

GridView將結果集顯示為表格(table),我們從一個項目開始開始。
一天客戶老鄭(鄭訊)來到這里,說要我做一個頁面,將所有的會員分頁顯示在列表里,每頁10條數(shù)據(jù),并且能按照表頭排序。
好吧~

我查詢了數(shù)據(jù)庫的user表

id username password create_time sex province city
1 abei dWRvDOMGjvGQZMGlxFR2xfhsfGpzu8Rx 1479876598 1 北京 北京
2 鄭訊 dWRvDOMGjvGQZMGlxFR2xfhsfGpzu8Rx 1479876698 0 黑龍江 哈爾濱
11 馬化騰 dWRvDOMGjvGQZMGlxFR2xfhsfGpzu8Rx 1479877598 1 黑龍江 齊齊哈爾
19 馬云 dWRvDOMGjvGQZMGlxFR2xfhsfGpzu8Rx 1479886598 1 黑龍江 嫩江

然后我決定使用GridView來顯示這些數(shù)據(jù),這樣分頁、排序都直接搞定了,我知道需要兩步

第一步是在控制器UserController.php里獲得結果集

    public function actionIndex(){
        $query = User::find();
        
        $dataProvider = new ActiveDataProvider([
            "query"=>$query,
            "pagination"=>[
                "pagesize"=>10
            ]
        ]);
        
        return $this->render("index",[
            "dataProvider"=>$dataProvider
        ]);
    }

第二部渲染視圖
index.php

    use yiigridGridView;
    
     $dataProvider,
        "columns" => [
            "id",
            "username",
            "create_time",
            "sex",
            "province",
            "city"
        ]
    ]);?>

完活了,聰明的GridView會搞定一切,我只需要將$dataProvider傳遞給ta,并且告訴他都要顯示User模型(user表)的那些屬性,放到columns數(shù)組中即可。
就這樣,表格出來了,且每個表都都能排序,客戶的需求達到了。

30分鐘后我拿給鄭訊看,見他默默無語,說了幾句話。

表頭改成編號、用戶名、生成時間等,不要英文。

會員生成時間我看不懂,改成年月日十分秒吧

性別改成男or女

省市兩列合并,像province-city這樣

恩,客戶是上帝,改改吧~,主要是我知道:"這個其實很簡單,GridView都能輕松搞定"

對于表頭的顯示,GridView是根據(jù)User模型的attributeLabels函數(shù)來決定的,現(xiàn)在就改
User.php

   /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            "id" => "ID",
            "create_time" => "Create Time",
            "username"=>"Username",
            "password"=>"Password",
            "sex"=>"Sex",            
        ];
    }

現(xiàn)在就改,60秒過去了

   /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            "id" => "編號",
            "create_time" => "生成時間",
            "username"=>"用戶名",
            "password"=>"Password",
            "sex"=>"性別",            
        ];
    }

但是,我發(fā)現(xiàn)省市怎么沒有,哦,想起來了,province和city是我后來添加到數(shù)據(jù)表的,并沒有更新User模型,那我直接加上就可以了。
最終版

   /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            "id" => "編號",
            "create_time" => "生成時間",
            "username"=>"用戶名",
            "password"=>"Password",
            "sex"=>"性別",     
            "province"=>"省",
            "city"=>"市"
        ];
    }

???搞定,在運行程序,"表頭改成編號、用戶名、生成時間等,不要英文"這個問題搞定了。

繼續(xù)把,現(xiàn)在要處理"會員生成時間我看不懂,改成年月日十分秒吧"這個問題,它也很簡單,因為我知道除了向GridView的 columns傳遞每個屬性名字外,我們還能傳遞一個自定義的數(shù)組,格式化數(shù)據(jù)、邏輯處理,啥都能干出來,相當禽獸。
開始改視圖index.php,我只花了10秒鐘

index.php

    use yiigridGridView;
    
     $dataProvider,
        "columns" => [
            "id",
            "username",
            [
                "attribute"=>"create_time",
                "format"=>["date", "php:Y-m-d H:i:s"]
            ],
            "sex",
            "province",
            "city"
        ]
    ]);?>

"attribute"=>"create_time"

attribute要填寫,代表你在操作那個屬性,且在這里排序也是根據(jù)他來的。
format是代表對create_time進行什么樣的格式化,默認yiii18nFormatter 來對其處理。

刷新瀏覽器

又一個山頭給我們攻克了。

這里要提一下,[]的功能很強大,上面的實現(xiàn)也可以根據(jù)以下代碼來實現(xiàn)
index.php

    use yiigridGridView;
    
     $dataProvider,
        "columns" => [
            "id",
            "username",
            [
                "attribute"=>"create_time",
                "value"=>function($data){
                    return date("Y-m-d H:i:s",$data->create_time);
                }
            ],
            "sex",
            "province",
            "city"
        ]
    ]);?>

"性別改成男女",不多言,直接代碼

index.php

    use yiigridGridView;
    
     $dataProvider,
        "columns" => [
            "id",
            "username",
            [
                "attribute"=>"create_time",
                "format"=>["date", "php:Y-m-d H:i:s"]
            ],
            [
                "attribute"=>"sex",
                "value"=>function($data){
                    return $data->sex == 1 ? "男" : "女";
                }
            ],
            "province",
            "city"
        ]
    ]);?>

刷新瀏覽器

value是一個很好的屬性,當你不知道有沒有提供內(nèi)置命令的時候,都可以使用value去用自己的思路實現(xiàn)需求。

還有最后一個,"省市兩列合并,像province-city這樣",勝利就在前方,我想你已經(jīng)有了思路。
只需要改一點

   [
        "attribute"=>"province",
        "value"=>function($data){
            return $data->province."-".$data->city;
        }
   ]

是的,你的思路是對的。但是發(fā)現(xiàn)一個問題,表頭顯示"省",ta應該顯示"省市"才對,不要緊,我們熱烈歡迎label屬性出場。

   [
        "label"=>"省市",
        "attribute"=>"province",
        "value"=>function($data){
            return $data->province."-".$data->city;
        }
   ]

最后我看了下。

不錯不錯,喝杯茶,一會去給客戶看。

10分鐘后,我郁悶的回來了,知道這回客戶提了那些亂七八糟的需求么?且聽下回分解《GridView - 睡衣篇》

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22343.html

相關文章

  • Yii2使用GridView實現(xiàn)數(shù)據(jù)全選及批量刪除按鈕

    摘要:先來看看實現(xiàn)的效果關鍵代碼設置顯示最下面的設置每行數(shù)據(jù)的復選框屬性刪除設置刪除按鈕垮列顯示其他列每個都要增加項,設置為,達到隱藏單元格的目的啟用禁用管理操作獲取選擇的數(shù)據(jù)最后我們就可以提交到相應的控制器。 先來看看實現(xiàn)的效果 showImg(https://segmentfault.com/img/bVJIqC?w=658&h=279); 關鍵代碼 獲取選擇的數(shù)據(jù) var i...

    lykops 評論0 收藏0
  • Yii2實現(xiàn)跨mysql數(shù)據(jù)庫關聯(lián)查詢排序功能

    摘要:于是就會報出這樣一個錯誤要在兩個數(shù)據(jù)庫同一臺服務器上進行關聯(lián)數(shù)據(jù)查詢,純語句如下轉化成語句時默認不會在表明前添加數(shù)據(jù)庫名,于是在執(zhí)行語句時就會默認此表在數(shù)據(jù)庫下。默認是這樣的只需要在表明前添加數(shù)據(jù)庫名為了提高代碼穩(wěn)定性,可以這樣寫 背景:在一個mysql服務器上(注意:兩個數(shù)據(jù)庫必須在同一個mysql服務器上)有兩個數(shù)據(jù)庫: memory (存儲常規(guī)數(shù)據(jù)表) 中有一個 use...

    lx1036 評論0 收藏0
  • yii2 ActiveRecord多表關聯(lián)以及多表關聯(lián)搜索的實現(xiàn)

    摘要:今天把這個問題講明白了,看看是怎么個多表關聯(lián)以及如何去優(yōu)化這個關聯(lián)。現(xiàn)需要在列表展示表的來源渠道,且該渠道可搜索。關聯(lián)表字段增加查詢中的搜索模型也是通過實現(xiàn)的,該模型通過控制著哪個字段可搜索,哪個字段不可搜索。 作者:白狼 出處:http://www.manks.top/yii2_many_ar_relation_search.html 本文版權歸作者,歡迎轉載,但未經(jīng)作者同意必須保留...

    venmos 評論0 收藏0

發(fā)表評論

0條評論

skinner

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<