亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

批量賦值是什么意思呢?

批量賦值是什么意思呢?

正在回答

2 回答

學習了

0 回復 有任何疑惑可以回復我~

除此之外還可以使用create方法插入數據,由于該方法中用到了批量賦值(Mass Assignment),所以我們需要在模型類中設置$fillable屬性或者$guarded屬性,以表明哪些屬性可以通過該方法設置,哪些不可以。

開始之前,我們先解釋下什么是批量賦值,以及為什么要使用批量賦值。

批量賦值的英文名稱是Mass Assignment,所謂的批量賦值是指當我們將一個數組發送到模型類用于創建新的模型實例的時候(通常是表單請求數據),我們可以簡單通過如下方式實現:

$post = Post::create(Input::all());

而不是像使用save方法那樣一個一個的設置屬性值,如果模型屬性很多的話,使用save簡直是噩夢有木有。

但事物總是相對的,使用批量賦值是很方便,但同時也帶來了安全隱患,很多時候模型類的某些屬性值不是我們所期望通過批量賦值修改的,比如用戶模型有個user_type屬性,如果用戶通過請求數據將其類型修改為管理員類型,這顯然是不允許的,正是基于這一考慮,Eloquent模型類為我們提供了$fillable屬性和$guarded屬性,我們可以將其分別看作“白名單”和“黑名單”,定義在$fillable中的屬性可以通過批量賦值進行賦值,而定義在$guarded中的屬性在批量賦值時會被過濾掉。

那么如果我們確實想要修改定義在$guarded中的屬性怎么辦?答案是使用save方法。

此外需要注意的是$fillable和$guarded方法同時只能定義一個,原因嘛很簡單,非黑即白,定義了一個另外一個也就確定了。

可見批量賦值不僅為我們創建模型提供了便利,還避免了安全隱患,提高了系統的安全性。


1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

批量賦值是什么意思呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號