當要新增一筆資料,比方說新的用戶、或新的文章,但遇到上圖的錯誤嗎?
原因是在Laravel Model要修改資料庫資料時,預設是會擋的,除非你把欄位權限打開。
有兩種方法:
例如,我們希望能更新使用者的資料,就必須把對應欄位放進fillable。
在User Model中加入下面的程式碼。
protected $fillable = [
'name',
'email',
'password',
];
如果懶了一一列出,想要全部開放,可以用guarded
protected $guarded = [];
如果只有某一欄位不能更改,例如email
protected $guarded = ['email'];
如果都寫的話?
protected $fillable = [
'name',
'email',
'password',
];
protected $guarded = [
'name',
'email',
'password',
];
實測結果還是fillable,都可以編輯。
基本上就是fillable或guarded擇一使用;懶得一一列出就用protected $guarded = []
。
然後輸入更新資料的form裡記得要加@csrf
,不然也會跑錯。