區別
$fillable
白名單
: 允許插入欄位
預設為: []
$guarded
黑名單
: 不允許插入欄位
預設為: ['*']
//所有欄位設定為黑名單 罪魁禍首
程式碼
$request->query->set('user_id', Auth::id());
Comment::create( $request->all());
這我鍾愛的寫法,能少寫一個就不寫兩個程式碼。
當然會插入失敗。
解決1
手動把所有欄位設定加入到 protected $fillable = ['user_id','nickname',....];
不考慮這種寫法,太麻煩了。
解決2
protectd $guarded = [];
這種寫法才爽,因為預設所有欄位都是黑名單,重置下就好了。
解決3
static $unguarded = true;
忽略黑
白
名單的驗證。
跟 解決2
一樣舒服。
2和3的問題
要了解為什麼需要 白名單
和 黑名單
,再做 2,3
的步驟。
並且能保證使用者傳送不了 破壞
系統的資料。
(比如我這個的user_id
,使用者傳送user_id
過來也沒用)
本作品採用《CC 協議》,轉載必須註明作者和本文連結