久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Laravel中批量賦值Mass-Assignment的真正含義詳解

Laravel作為在國內國外都頗為流行的PHP框架,風格優雅,其擁有自己的一些特點,下面這篇文章主要給大家介紹了關于Laravel中批量賦值Mass-Assignment的真正含義,需要的朋友可以參考借鑒,

前言

很多人初次遇到 批量賦值 的時候,很容易理解成 批量添加多條數據,實際并非如此。下面話不多說了,請看下面的例子。

假設用戶表 users 結構如下,且通過 is_admin 字段值為 1 或 0 來判斷用戶是否為 管理員,其中 is_admin 字段默認值為 0:

+----+-----------+------------------+----------+--------------------------------------------------------------+
| id | name  | email   | is_admin | password              |
+----+-----------+------------------+----------+--------------------------------------------------------------+
| 1 | seekerliu | me@seekerliu.com |  1 | $2y$10$RL6r.MwoJd.oOvKRYhUpmeQI6hUpoG/KgGNhA6X5JrRqfVbooCs92 |
+----+-----------+------------------+----------+--------------------------------------------------------------+

正常情況下,我們通過這種方式新建一個 普通 用戶:

public function store (Request $request)
{
 $user = new \App\User;
  
 // 賦值
 $user->name = $request->name;
 $user->email = $request->email;
 $user->password = bcrypt($request->password);
  
 // 新建一個用戶
 $user->save();
}

為了方便,我們可以使用 $request->all() 獲取用戶提交的所有表單數據:

public function store (Request $request)
{
 $user = new \App\User;
  
 // Mass-Assignment 批量賦值
 $data = $request->all(); 
  
 // 新建一個用戶
 $user->create($data);
}

這種情況下,如果用戶提交正確的表單數據,例如: ['name' => 'liu', 'email' => 'liu@seekerliu.com', 'password' => 'test'] ,會新建一個 普通 用戶。

但只要用戶在表單中偽造一個 ['is_admin' => 1] 字段,就能新建一個 管理員 用戶。

這種通過將一大堆數據同時傳遞給模型的 create() 方法來新建一行的方式就是 Mass-Assignment (批量賦值) 。

Laravel 提供了保護 Mass-Assignment 的方法,那就是在模型上定義 fillable 或 guarded 的屬性,例如:

class User extend Model
{
 protected $fillable = ['name', 'email', 'password'];
}

或:

class User extend Model
{
 protected $guarded = ['is_admin'];
}

這樣,在執行 create() 方法時,Eloquent 模型會先使用 fill() 方法對數據進行過濾,去掉 $fillable 以外的字段(白名單),或去掉 $guarded 中的字段(黑名單),來保證只獲取預期的表單字段。

以上就是 Laravel 的 Mass-Assignment 。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對的支持。

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

下面小編就為大家分享一篇laravel ORM 只開啟created_at的幾種方法總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要給大家介紹了如何通過源碼解析Laravel的依賴注入的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著
這篇文章主要給大家介紹了關于Laravel中unique和exists驗證規則的優化的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面
最近在使用laravel5.5,利用其實現了一個功能,下面分享給大家,這篇文章主要給大家介紹了關于Laravel 5.5基于內置的Auth模塊如何實現前后臺登陸的相關資料,文中通過示例代碼介紹的非
laravel 的隊列服務對各種不同的后臺隊列服務提供了統一的 API,下面這篇文章通過源碼分析給大家介紹了關于 Laravel 重復執行同一個隊列任務的原因,文中通過示例代碼介紹的非常詳細
這篇文章主要給大家介紹了關于 Laravel Redis 多個進程同時取隊列問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友下面來
主站蜘蛛池模板: 亚洲第一av| 黄色一级免费看 | 欧美日韩淫片 | 天天草天天操 | 国产一区视频在线 | 精品国产色 | 欧美日韩一 | 中文字幕亚洲一区二区三区 | 日韩www| www.狠狠干| 成人国产精品视频 | 欧美精品二区 | 日韩精品视频在线 | 男女羞羞在线观看 | 一区二区三区欧美大片 | 国产一区二区电影网 | 天天色综 | 国产精品三级 | 91久久精品国产91久久 | 久久成人精品一区二区三区 | 天天曰夜夜操 | 亚洲欧美高清 | 国产高清免费视频 | 欧美精品欧美精品系列 | 国产色片| 国产视频1区 | 成人福利在线观看 | 九九久久久 | 亚洲国产精品久久久久婷婷老年 | 日韩喷潮 | 成人精品国产 | 欧美成人猛片aaaaaaa | 欧美成年视频 | 亚洲网站在线播放 | 日本一区视频在线观看 | 久草成人 | 久久久123| 国产毛片毛片 | 中文字幕日韩一区 | 在线观看深夜视频 | 久久成人免费观看 |