gpt4 book ai didi

php - 更新 Laravel 模型中的不可填充字段

转载 作者:行者123 更新时间:2023-12-03 19:20:38 26 4
gpt4 key购买 nike

我有我的用户表,当你完成整个过程时,默认表 Laravel 附带 php artisan make:auth东西,我添加了一个 bool 值 system_admin列,以及其他几个类似的列

现在,当有人注册到该站点时,我不希望恶意的人能够给自己这个权利,所以我没有将该字段放在 fillable 中。 User.php 模型文件中的数组。

那么第一个问题是:出于正确的原因,这是正确的决定吗?

但是现在我正在处理一个系统管理页面,它应该允许人们修改这样的属性,但在我的 route ,只有系统管理员才能访问,我的代码如下所示:

public function updateUser($userId, Request $request) {
$user = User::find($userId);
$update = $request->all();
$user->update($update);

当然,因为这些列不是 fillable ,此请求不适用于这些字段。

但我想要它,因为这个特定的路由受到中间件的保护,中间件验证 system_admin 应该有权访问它。

那么如何更新这些不可填充的列,而不允许非系统管理员更新相同的列呢?

最佳答案

我使用 lagbox answer 提出了一个替代解决方案,该解决方案遍历我 route 的每个更新变量键:

public function updateUser($userId, Request $request) {
$user = User::find($userId);
$update = $request->all();
foreach($update as $key => $value) {
$user->$key = $value;
}
$user->save();

$newUser = User::find($userId);
return response()->json($newUser->toJson());
}

我希望这样做没有任何问题。

关于php - 更新 Laravel 模型中的不可填充字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59425127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com