簡體   English   中英

Laravel - 在 laravel model 中使用或不使用可填充?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM