<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 屬性操作 ### 介紹 訪問器和更改器允許您在從模型中檢索屬性或設置其值時設置其格式。例如,您可能希望使用[加密服務](https://octobercms.com/docs/services/encryption)對存儲在數據庫中的值進行加密,然后在模型上訪問屬性時自動對其進行解密。 除了自定義訪問器和變量外,您還可以自動將日期字段強制轉換為[Carbon](https://github.com/briannesbitt/Carbon)實例,甚至[將文本值強制轉換為JSON](https://octobercms.com/docs/database/mutators#attribute-casting)。 ### [](https://octobercms.com/docs/database/mutators#accessors-and-mutators)存取器和更改器 #### 定義訪問器 要定義訪問器,請`getFooAttribute`在模型上創建一個方法,其中`Foo`是您要訪問的列的“ camel”大小寫名稱。在此示例中,我們將為`first_name`屬性定義一個訪問器。嘗試檢索以下值時,將自動調用訪問器`first_name`: ~~~ <?php namespace Acme\Blog\Models; use 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 = User::find(1); $firstName = $user->first_name; ~~~ #### 定義增幅器 要定義變量,請`setFooAttribute`在模型上定義一個方法,其中`Foo`要訪問的列的“ camel”大小寫名稱是。在此示例中,讓我們為`first_name`屬性定義一個變量。當我們嘗試`first_name`在模型上設置屬性值時,將自動調用此mutator: ~~~ <?php namespace Acme\Blog\Models; use 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 = User::find(1); $user->first_name = 'Sally'; ~~~ 此處`setFirstNameAttribute`將使用value調用該函數`Sally`。然后,`strtolower`更改器會將函數應用于名稱,并在內部`$attributes`數組中設置其值。 ### [](https://octobercms.com/docs/database/mutators#date-mutators)日期變量 默認情況下,十月份的Models會將`created_at`and`updated_at`列轉換為[Carbon](https://github.com/briannesbitt/Carbon)對象的實例,該對象提供了各種有用的方法并擴展了本機PHP`DateTime`類。 您可以通過覆蓋`$dates`模型的屬性來自定義自動更改的字段,甚至完全禁用此更改: ~~~ class User extends Model { /** * The attributes that should be mutated to dates. * * @var array */ protected $dates = ['created_at', 'updated_at', 'disabled_at']; } ~~~ 當一列被認為是日期時,您可以將其值設置為UNIX時間戳,日期字符串(`Y-m-d`),日期時間字符串,當然還有一個`DateTime`/`Carbon`實例,該日期的值將自動正確地存儲在數據庫中: ~~~ $user = User::find(1); $user->disabled_at = Carbon::now(); $user->save(); ~~~ 如上所述,在檢索屬性中列出的`$dates`屬性時,它們將自動轉換為[Carbon](https://github.com/briannesbitt/Carbon)實例,從而使您可以在屬性上使用Carbon的任何方法: ~~~ $user = User::find(1); return $user->disabled_at->getTimestamp(); ~~~ 默認情況下,時間戳記格式為`'Y-m-d H:i:s'`。如果需要自定義時間戳格式,請`$dateFormat`在模型上設置屬性。此屬性確定日期屬性在數據庫中的存儲方式,以及將模型序列化為數組或JSON時的格式: ~~~ class Flight extends Model { /** * The storage format of the model's date columns. * * @var string */ protected $dateFormat = 'U'; } ~~~ ### [](https://octobercms.com/docs/database/mutators#attribute-casting)屬性轉換 `$casts`模型上的屬性提供了一種將屬性轉換為通用數據類型的便捷方法。該`$casts`屬性應該是一個數組,其中鍵是要轉換的屬性的名稱,而值是希望轉換為列的類型。支持的鑄件類型有:`integer`,`real`,`float`,`double`,`string`,`boolean`,`object`和`array`。 例如,讓我們將`is_admin`屬性轉換為布爾值,該屬性以整數(`0`或`1`)的形式存儲在數據庫中: ~~~ class User extends Model { /** * The attributes that should be casted to native types. * * @var array */ protected $casts = [ 'is_admin' => 'boolean', ]; } ~~~ 現在`is_admin`,即使基礎值作為整數存儲在數據庫中,也可以在訪問屬性時將其強制轉換為布爾值: ~~~ $user = User::find(1); if ($user->is_admin) { // } ~~~ #### 數組轉換 `array`當使用存儲為序列化JSON的列時,強制類型轉換特別有用。例如,如果您的數據庫具有`TEXT`包含序列化JSON的字段類型,`array`則在Eloquent模型上訪問該屬性時,將強制類型轉換添加到該屬性將自動將該屬性反序列化為PHP數組: ~~~ 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 = User::find(1); $options = $user->options; $options['key'] = 'value'; $user->options = $options; $user->save(); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看