<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        laravel學習教程之存取器

        來源:懂視網 責編:小OO 時間:2020-11-27 19:03:34
        文檔

        laravel學習教程之存取器

        前言;Laravel是一個簡單優雅的PHP Web開發框架,可以將開發者從意大利面條式的代碼中解放出來,通過簡單、高雅、表達式語法開發出很棒的Web應用,那下面跟著小編一起來學習laravel中的存取器吧。Eloquent: 存取器簡介。訪問器和存儲器允許你在獲取或者設置 Eloquent 模型屬性值時對其進行格式化操作。比如,你可能希望當一個值存儲進數據庫之前先對其進行 Laravel encrypter 進行加密操作,并且可以在你通過模型訪問的時候自動的進行該屬性的解密。除了可自定義的的訪問器和存儲器,Eloquent 也可以自動的將日期字段轉換為 Carbon 實例,或者甚至是將字符串字段轉換為 JSON。訪問器 & 存取器;定義一個訪問器;
        推薦度:
        導讀前言;Laravel是一個簡單優雅的PHP Web開發框架,可以將開發者從意大利面條式的代碼中解放出來,通過簡單、高雅、表達式語法開發出很棒的Web應用,那下面跟著小編一起來學習laravel中的存取器吧。Eloquent: 存取器簡介。訪問器和存儲器允許你在獲取或者設置 Eloquent 模型屬性值時對其進行格式化操作。比如,你可能希望當一個值存儲進數據庫之前先對其進行 Laravel encrypter 進行加密操作,并且可以在你通過模型訪問的時候自動的進行該屬性的解密。除了可自定義的的訪問器和存儲器,Eloquent 也可以自動的將日期字段轉換為 Carbon 實例,或者甚至是將字符串字段轉換為 JSON。訪問器 & 存取器;定義一個訪問器;

        前言

        Laravel是一個簡單優雅的PHP Web開發框架,可以將開發者從意大利面條式的代碼中解放出來,通過簡單、高雅、表達式語法開發出很棒的Web應用,那下面跟著小編一起來學習laravel中的存取器吧。

        Eloquent: 存取器簡介

        訪問器和存儲器允許你在獲取或者設置 Eloquent 模型屬性值時對其進行格式化操作。比如,你可能希望當一個值存儲進數據庫之前先對其進行 Laravel encrypter 進行加密操作,并且可以在你通過模型訪問的時候自動的進行該屬性的解密。

        除了可自定義的的訪問器和存儲器,Eloquent 也可以自動的將日期字段轉換為 Carbon 實例,或者甚至是將字符串字段轉換為 JSON。

        訪問器 & 存取器

        定義一個訪問器

        為了定義一個訪問器,你需要在你的模型上創建一個 getFooAttribute 方法,其中的 Foo 是你需要進行訪問的列名的駝峰方式的命名。在這個例子中,我們將定義一個 first_name 屬性的訪問器。這個訪問器會在 Eloquent 嘗試獲取 first_name 屬性值時觸發:

        <?php
        
        namespace App;
        
        use Illuminate\Database\Eloquent\Model;
        
        class User extends Model
        {
         /**
         * Get the user's first name.
         *
         * @param string $value
         * @return string
         */
         public function getFirstNameAttribute($value)
         {
         return ucfirst($value);
         }
        }

        就如你所看到的,屬性原始的值會被傳遞到訪問器中,這允許你對原始值進行操作及返回格式化后的值。你只需要簡單的訪問 first_name 屬性就可以從存取器中訪問該值:

        $user = App\User::find(1);
        
        $firstName = $user->first_name;

        定義一個存儲器

        為了定義一個存儲器,你需要在你的模型上定義一個 setFooAttribute 方法,其中的 Foo 是你期望訪問的列的駝峰樣式的名稱。那么,這一次,讓我們為 first_name 屬性定義一個存儲器。這個存儲器會在模型嘗試設置 first_name 屬性的值時進行調用:

        <?php
        
        namespace App;
        
        use Illuminate\Database\Eloquent\Model;
        
        class User extends Model
        {
         /**
         * Set the user's first name.
         *
         * @param string $value
         * @return string
         */
         public function setFirstNameAttribute($value)
         {
         $this->attributes['first_name'] = strtolower($value);
         }
        }

        存儲器會接收即將設置到屬性中的值,這允許你對這個值進行操作,并將其設置到模型內部的 $attributes 屬性中。所以,舉個示例,如果我們嘗試將 first_name 屬性設置為 Sally:

        $user = App\User::find(1);
        
        $user->first_name = 'Sally';


        在這個例子中,setFirstNameAttribute 方法會被調用并伴隨 Sally 值。存儲器會應用 strtolower 方法將名字小寫化然后將值設置到內部的 $attributes 數組中。

        日期存取器

        默認的,Eloquent 會轉換 created_at updated_at 列為 Carbon 實例,這個實例可以提供多種有用的方法,并且它繼承自原生 PHP 的 DataTime 類。

        你可以自定義哪些字段可以進行自動的轉換,甚至是完全禁用這種轉換,你需要在你的模型中復寫 $dates 屬性:

        <?php
        
        namespace App;
        
        use Illuminate\Database\Eloquent\Model;
        
        class User extends Model
        {
         /**
         * The attributes that should be mutated to dates
         *
         * @var array
         */
         protected $dates = ['created_at', 'updated_at', 'deleted_at'];
        }

        當一列被認為是日期時,你可以將其設置為 UNIX 時間戳,日期字符串(Y-m-d),時間字符串,和 DateTime / Carbon 實例,并且日期的值會自動的正確的存儲到數據庫中:

        $user = App\User::find(1);
        
        $user->deleted_at = Carbon::now();
        
        $user->save();

        就如上面所述,當獲取的屬性是 $dates 屬性所列出的值之一時,它會自動的被轉換為 Carbon 實例,這允許你在屬性上使用 Carbon 的一些方法:

        $user = App\User::find(1);
        
        return $user->deleted_at->getTimestamp();


        默認的,時間戳被格式化為 Y-m-d H:i:s 的格式。如果你希望自定義時間戳的格式,你需要在你的模型中設置 $dateFormat 屬性。該屬性將確定日期屬性將如何存儲到數據庫中以及當模型進行序列化或者 JSON 化時如何展示:

        <?php
        
        namespace App;
        
        use Illuminate\Database\Eloquent\Model;
        
        class Flight extends Model
        {
         /**
         * The storage format of the model's date columns.
         *
         * @var string
         */
         protected $dateFormat = 'U';
        }

        屬性轉換

        你可以在你的模型中定義 $casts 屬性來提供一種方便的方式將屬性轉換為通用的數據類型。$casts 屬性應該是一個數組,并且其每一項的鍵應該是需要進行轉換的屬性名,而其鍵所對應的值應該是你需要屬性轉換到的類型。支持的轉換類型有:integerrealfloatdoublestringbooleanobjectarraycoolectiondatedatetime,和 timestamp

        比如,讓我們轉換 is_admin 屬性,它在數據庫中存儲的值為一個整型(0 或者 1),我們將其轉換為布爾值:

        <?php
        
        namespace App;
        
        use Illuminate\Database\Eloquent\Model;
        
        class User extends Model
        {
         /**
         * The attributes that should be casted to native types.
         *
         * @var array
         */
         protected $casts = [
         'is_admin' => 'boolean',
         ];
        }

        現在,每當你訪問 is_admin 屬性時,其值都會被轉換為布爾值,即使其在數據庫中存儲的整型值:

        $user = App\User::find(1);
        
        if ($user->is_admin) {
         //
        }

        數組轉換

        array 轉換的類型對于存儲序列化 JSON 值的列尤其有用。比如,如果數據庫有一個 TEXT 類型的字段,并且其存儲的是序列化的 JSON,如果你添加該屬性的 array 轉換,那么當你在 Eloquent 模型上訪問這個屬性時,它將會自動的進行反序列化為 PHP 的數組:

        <?php
        
        namespace App;
        
        use Illuminate\Database\Eloquent\Model;
        
        class User extends Model
        {
         /**
         * The attributes that should be casted to native types.
         *
         * @var array
         */
         protected $casts = [
         'options' => 'array'
         ];
        }

        當你轉義定義完成之后,你可以訪問 options 屬性,并且它會自動的被從 JSON 反序列化為 PHP 數組。當你設置值到 options 屬性時,所給定的數組會自動的序列化為 JSON 格式,然后進行存儲:

        $user = App\User::find(1);
        
        $options = $user->options;
        
        $options['key'] = 'value';
        
        $user->options = $options;
        
        $user->save();

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        laravel學習教程之存取器

        前言;Laravel是一個簡單優雅的PHP Web開發框架,可以將開發者從意大利面條式的代碼中解放出來,通過簡單、高雅、表達式語法開發出很棒的Web應用,那下面跟著小編一起來學習laravel中的存取器吧。Eloquent: 存取器簡介。訪問器和存儲器允許你在獲取或者設置 Eloquent 模型屬性值時對其進行格式化操作。比如,你可能希望當一個值存儲進數據庫之前先對其進行 Laravel encrypter 進行加密操作,并且可以在你通過模型訪問的時候自動的進行該屬性的解密。除了可自定義的的訪問器和存儲器,Eloquent 也可以自動的將日期字段轉換為 Carbon 實例,或者甚至是將字符串字段轉換為 JSON。訪問器 & 存取器;定義一個訪問器;
        推薦度:
        標簽: 學習 教程 腳本
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 99久久久国产精品免费牛牛| 成人婷婷网色偷偷亚洲男人的天堂| 亚洲国产av无码精品| 亚洲av无码天堂一区二区三区| 亚洲综合在线一区二区三区| 亚洲欧美熟妇综合久久久久| 美女被吸屁股免费网站| a毛片在线看片免费| 免费人成在线视频| 亚洲午夜福利精品久久| 久久久无码精品亚洲日韩蜜臀浪潮| 一本天堂ⅴ无码亚洲道久久| 国产成人免费爽爽爽视频 | 亚洲欭美日韩颜射在线二| 亚洲综合一区二区国产精品| 免费国产污网站在线观看15| 亚洲视频国产精品| 一区二区三区在线免费观看视频| 2021国内精品久久久久精免费| 国产成人精品男人免费| 亚洲av永久无码精品网站| 亚洲第一街区偷拍街拍| 3344免费播放观看视频| 久久精品国产亚洲AV忘忧草18| 黄色视屏在线免费播放| 最新中文字幕电影免费观看| 亚洲色成人网一二三区| 男人的好免费观看在线视频| 黄页网址大全免费观看12网站| 亚洲性猛交XXXX| 手机在线看永久av片免费| 亚洲黄色免费电影| 日本免费一区尤物| 亚洲乱码一二三四区麻豆| 久久综合国产乱子伦精品免费| 亚洲一区二区三区久久久久| 免费不卡中文字幕在线| 亚洲中文无码永久免| 亚洲综合最新无码专区| 曰批视频免费40分钟试看天天| 亚洲AV成人精品一区二区三区|