第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 ThinkPHP 入門教程 ThinkPHP 入門教程 ThinkPHP 獲取數(shù)據(jù)追加字段

獲取數(shù)據(jù)追加字段

1. 前言

前面小節(jié)介紹了數(shù)據(jù)庫操作,本小節(jié)介紹如何在數(shù)據(jù)模型中指定追加字段,追加字段的目的主要是用于對某些字段的特殊處理或需要在返回數(shù)據(jù)的時候返回某些特性情況的字段,這樣的處理對接口的使用者來說更加友好,對于開發(fā)者來說可以減少代碼量和工作量。

2. 應用場景

下面返回的數(shù)據(jù)可以看到創(chuàng)建時間字段 created_at 是時間戳,這種就需要轉(zhuǎn)化成可讀的日期格式,這個時候就可以用到 ThinkPHP 提供的數(shù)據(jù)模型的字段追加功能,它可以在原有字段的基礎上追加出想要的其他字段數(shù)據(jù)。之前獲取學生列表接口的時候返回數(shù)據(jù)如下:

{
    "total": 200,
    "per_page": 10,
    "current_page": 2,
    "last_page": 20,
    "data": [
        {
            "id": 12,
            "name": "孫空",
            "age": 20,
            "id_number": "420117201005127996",
            "created_at": 1603617951,
            "update_at": 0,
            "status": 1
        },
        {
            "id": 1,
            "name": "趙四",
            "age": 24,
            "id_number": "420117201005124146",
            "created_at": 1603617951,
            "update_at": 0,
            "status": 1
        },
        {
            "id": 10,
            "name": "孫空",
            "age": 21,
            "id_number": "420117201005124671",
            "created_at": 1603617951,
            "update_at": 0,
            "status": 1
        },
        {
            "id": 9,
            "name": "錢學",
            "age": 19,
            "id_number": "420117201005121149",
            "created_at": 1603617951,
            "update_at": 0,
            "status": 1
        },
        {
            "id": 8,
            "name": "吳小明",
            "age": 21,
            "id_number": "420117201005123197",
            "created_at": 1603617951,
            "update_at": 0,
            "status": 1
        },
        {
            "id": 7,
            "name": "張紅",
            "age": 19,
            "id_number": "420117201005123721",
            "created_at": 1603617951,
            "update_at": 0,
            "status": 1
        },
        {
            "id": 6,
            "name": "王五",
            "age": 25,
            "id_number": "420117201005123617",
            "created_at": 1603617951,
            "update_at": 0,
            "status": 1
        },
        {
            "id": 5,
            "name": "錢學",
            "age": 23,
            "id_number": "420117201005123085",
            "created_at": 1603617951,
            "update_at": 0,
            "status": 1
        },
        {
            "id": 4,
            "name": "趙四",
            "age": 20,
            "id_number": "420117201005128637",
            "created_at": 1603617951,
            "update_at": 0,
            "status": 1
        },
        {
            "id": 3,
            "name": "趙四",
            "age": 18,
            "id_number": "420117201005125711",
            "created_at": 1603617951,
            "update_at": 0,
            "status": 1
        }
    ]
}

3. 設置追加字段

這里還是以之前第 10 小節(jié)學生列表為例,可以在 app\Models\Study\StudentModel 中增加屬性 $append,然后想要追加什么字段可以初始化 $append,如下圖所示:
圖片描述

此時再去請求之前的分頁列表接口,會出現(xiàn)如下 created_at_text 字段,因為沒有處理該值,所以顯示的是 null

{
    "total": 400,
    "per_page": 15,
    "current_page": 1,
    "last_page": 27,
    "data": [
        {
            "id": 205,
            "name": "吳小明",
            "age": 21,
            "id_number": "420117201005129466",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 212,
            "name": "孫空",
            "age": 18,
            "id_number": "420117201005127426",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 208,
            "name": "張紅",
            "age": 22,
            "id_number": "420117201005126184",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 206,
            "name": "王五",
            "age": 21,
            "id_number": "420117201005124940",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 215,
            "name": "趙四",
            "age": 20,
            "id_number": "420117201005122353",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 213,
            "name": "張紅",
            "age": 20,
            "id_number": "420117201005126460",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 204,
            "name": "吳小明",
            "age": 19,
            "id_number": "420117201005124822",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 209,
            "name": "李珍",
            "age": 19,
            "id_number": "420117201005122985",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 207,
            "name": "錢學",
            "age": 24,
            "id_number": "420117201005123220",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 203,
            "name": "孫空",
            "age": 19,
            "id_number": "420117201005129634",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 211,
            "name": "張紅",
            "age": 22,
            "id_number": "420117201005129909",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 400,
            "name": "孫空",
            "age": 23,
            "id_number": "420117201005129673",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 214,
            "name": "王五",
            "age": 20,
            "id_number": "420117201005126275",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 210,
            "name": "錢學",
            "age": 18,
            "id_number": "420117201005125767",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        },
        {
            "id": 202,
            "name": "李珍",
            "age": 20,
            "id_number": "420117201005125731",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": null
        }
    ]
}

如下圖所示:
圖片描述

4.定義追加字段賦值方法

可以在 StudentModel 中創(chuàng)建如下方法處理追加字段值:

    public function getCreatedAtTextAttr()
    {
        return date('Y-m-d H:i',$this->created_at);
    }

如下圖所示:
圖片描述

Tips: 追加字段處理的方法命名格式為 getAaaBbbAttr() 這種格式,其中 AaaBbb 是追加字段按照大駝峰命名書寫的。

5. 請求數(shù)據(jù)查看

postman 請求學生列表接口,可以查看到數(shù)據(jù)中已有可讀的 created_at_text 字段:

{
    "total": 400,
    "per_page": 15,
    "current_page": 1,
    "last_page": 27,
    "data": [
        {
            "id": 205,
            "name": "吳小明",
            "age": 21,
            "id_number": "420117201005129466",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 212,
            "name": "孫空",
            "age": 18,
            "id_number": "420117201005127426",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 208,
            "name": "張紅",
            "age": 22,
            "id_number": "420117201005126184",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 206,
            "name": "王五",
            "age": 21,
            "id_number": "420117201005124940",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 215,
            "name": "趙四",
            "age": 20,
            "id_number": "420117201005122353",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 213,
            "name": "張紅",
            "age": 20,
            "id_number": "420117201005126460",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 204,
            "name": "吳小明",
            "age": 19,
            "id_number": "420117201005124822",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 209,
            "name": "李珍",
            "age": 19,
            "id_number": "420117201005122985",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 207,
            "name": "錢學",
            "age": 24,
            "id_number": "420117201005123220",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 203,
            "name": "孫空",
            "age": 19,
            "id_number": "420117201005129634",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 211,
            "name": "張紅",
            "age": 22,
            "id_number": "420117201005129909",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 400,
            "name": "孫空",
            "age": 23,
            "id_number": "420117201005129673",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 214,
            "name": "王五",
            "age": 20,
            "id_number": "420117201005126275",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 210,
            "name": "錢學",
            "age": 18,
            "id_number": "420117201005125767",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        },
        {
            "id": 202,
            "name": "李珍",
            "age": 20,
            "id_number": "420117201005125731",
            "created_at": 1605286706,
            "update_at": 0,
            "status": 1,
            "created_at_text": "2020-11-14 00:58"
        }
    ]
}

如下圖所示:
圖片描述

6. 小結(jié)

本小節(jié)主要介紹如何在模型中追加字段,只需要在模型設置 protected $append 字段屬性即可,需要追加的字段需要定義對應的 getAaBbAttr() 方法對字段賦值,通過追加字段的方式可以很方便的處理某些特定的字段。

Tips: 代碼倉庫:https://gitee.com/love-for-poetry/tp6