国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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 屬性應該是一個數組,并且其每一項的鍵應該是需要進行轉換的屬性名,而其鍵所對應的值應該是你需要屬性轉換到的類型。支持的轉換類型有:integerreal,float,doublestringboolean,objectarraycoolection,date,datetime,和 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
主站蜘蛛池模板: 精品国产乱码久久久久久一区二区 | 亚洲欧美偷拍另类 | 香港经典a毛片免费观看…伊人色综合久久 | 日本黄 色 成 年 人免费观看 | 九九热国产 | 日韩专区在线 | 欧美激情影院 | 精品国产一区二区三区久久久蜜臀 | 国产日韩欧美在线观看不卡 | 亚洲一区二区三区在线免费观看 | 亚洲欧美偷拍另类 | 一区二区三区高清不卡 | 国产激情一区二区三区成人91 | 国产成人综合久久精品亚洲 | 国产亚洲一区二区精品 | 黄色一级视频免费看 | 国产精品夜夜爽范冰冰 | 亚洲男同在线观看 | 日韩一区二区在线免费观看 | 国模双双大尺度炮交g0go | 欧美一区二区免费 | 中文字幕无线码一区 | 日韩精品网站 | 午夜视频hd | 精品国产欧美一区二区五十路 | 国产小视频在线免费观看 | 国产精品久久久久久久午夜片 | 亚欧成人一区二区 | 国内精品久久久久久中文字幕 | 精品一区二区三区免费视频 | 欧美日韩精品乱国产538 | 国产欧美在线观看视频 | 一级毛片视频播放 | 手机在线观看国产精选免费 | 亚洲高清一区二区三区 | 亚洲欧美网址 | 国产精品亚洲一区二区三区在线播放 | 69国产成人综合久久精品91 | 久操精品在线观看 | 欧美极品尤物在线播放一级 | 亚洲一区二区三 |