Laravel - 在 Laravel 模型中使用还是不使用可填充?

kod*_*ire 2 php laravel

我想使用以下代码:Model::update($request);,但是表中的所有字段都可能被恶意用户修改,因此我更改$fillable模型中的 以仅修改用户可以修改的字段,而不能修改其他字段。但是现在的问题是我不能通过自己的价值观来修改它。

id  name  verified
1   Alex     0
Run Code Online (Sandbox Code Playgroud)

如果恶意用户发送的数据$request是:

[
    'name' => 'ModifiedAlex',
    'verified' => 1,
]
Run Code Online (Sandbox Code Playgroud)

所以它会修改表并得到验证是不好的当设置$fillable为仅名称时:

$fillable = [
    'name'
];
Run Code Online (Sandbox Code Playgroud)

那么我自己就不能用Model::where('id', $userId)->update(['verified' => 1]).

那该怎么办呢?使用$fillable与否?

Tsa*_*oga 5

继续为恶意用户使用可填充和雄辩

您可以使用查询生成器来避免fillable自己。它不检查fillable.:

DB::table('users')->where('id', $userId)->update(['verified' => 1]); // update with verified.
Run Code Online (Sandbox Code Playgroud)