下面由Laravel教程欄目給大家介紹Laravel忽略白名單和黑名單,希望對(duì)需要的朋友有所幫助!
區(qū)別
$fillable
白名單
: 允許插入字段
默認(rèn)為: []
$guarded
黑名單
: 不允許插入字段
默認(rèn)為: ['*']
//所有字段設(shè)置為黑名單 罪魁禍?zhǔn)?/p>
代碼
$request->query->set('user_id', Auth::id());Comment::create( $request->all());
這我鐘愛的寫法,能少寫一個(gè)就不寫兩個(gè)代碼。
當(dāng)然會(huì)插入失敗。
解決1
手動(dòng)把所有字段設(shè)置加入到 protected $fillable = ['user_id','nickname',....];
不考慮這種寫法,太麻煩了。
解決2
protectd $guarded = [];
這種寫法才爽,因?yàn)槟J(rèn)所有字段都是黑名單,重置下就好了。
解決3
static $unguarded = true;
忽略黑
白
名單的驗(yàn)證。
跟 解決2
一樣舒服。
2和3的問題
要了解為什么需要 白名單
和 黑名單
,再做 2,3
的步驟。
并且能保證用戶發(fā)送不了 破壞
系統(tǒng)的數(shù)據(jù)。
(比如我這個(gè)的user_id
,用戶發(fā)送user_id
過來也沒用)