久久久久久久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 多個進程同時取隊列問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友下面來
主站蜘蛛池模板: 黑人中文字幕一区二区三区 | 成人精品一区二区三区中文字幕 | 日韩成人免费视频 | 国产精品亚洲欧美日韩一区在线 | 色射综合| 久久精品亚洲精品国产欧美 | 亚洲一区二区三区在线播放 | 一区二区电影网 | www.国产视频 | 亚洲欧美一区二区三区视频 | 亚洲日日 | 亚洲精品区 | 免费国产视频 | 黄网站涩免费蜜桃网站 | 91国产精品在线 | 国产欧美一区二区三区另类精品 | 久久精品亚洲精品国产欧美 | 亚洲国产精品99久久久久久久久 | 欧美视频在线看 | 欧美一级淫片免费视频黄 | 久久国产美女视频 | 亚洲视频一区在线播放 | 成人免费视频网站在线观看 | 国产激情在线看 | 91精品中文字幕一区二区三区 | 亚洲国产成人精品女人久久久 | 一区二区视频在线 | 奇米在线| 成人欧美一区二区三区黑人孕妇 | 在线观看免费av网 | 精品中文字幕久久 | 精品二 | 狠狠躁夜夜躁人人爽天天高潮 | 欧美日韩成人在线 | 亚洲精品一区二区 | 亚洲欧美国产精品一区二区 | 又黑又粗又长的欧美一区 | 无人区国产成人久久三区 | www.青青草 | 中文字幕 亚洲一区 | av喷水|