[英]Laravel - USING or NOT USING fillable in laravel model?
我想使用這個代碼: Model::update($request);
, 但是表中的所有字段都可能被惡意用戶修改,因此我將 model 中的$fillable
fillable 更改為僅修改用戶可以修改的字段,而不能修改其他字段。 但現在的問題是我自己不能通過自己的價值觀來修改它。
id name verified
1 Alex 0
如果惡意用戶在$request
中發送的數據是:
[
'name' => 'ModifiedAlex',
'verified' => 1,
]
所以它會修改表並得到驗證是不好的當設置$fillable
為僅名稱時:
$fillable = [
'name'
];
然后我自己不能用Model::where('id', $userId)->update(['verified' => 1])
修改它。
那該怎么辦? 是否使用$fillable
?
繼續為惡意用戶使用可填充和 eloquent 。
您可以使用查詢生成器來避免自己fillable
。 它不檢查fillable
的 .:
DB::table('users')->where('id', $userId)->update(['verified' => 1]); // update with verified.
您可以通過 object 更新記錄
$user = \App\User::find(1);
$user->verified = 1;
$user->save();
在用戶提供數據的地方,您可以使用Model::where('id', $userId)->update($request->except('_token'))
以避免任何其他字段。
$request->except('_token')
為您提供除_token
索引之外的所有帖子數據
但是對於管理員,您可以使用 object 上的save
來更新/創建用戶
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.