gpt4 book ai didi

php - Laravel 只更新单行

转载 作者:行者123 更新时间:2023-12-02 06:29:20 24 4
gpt4 key购买 nike

我在使用 laravel 更新数据库中的单个记录时遇到问题。

当我运行此方法并仅给 requestparams 提供“名称”时,数据库中的其他字段将变为空白。
如何保留 requestparams 中未指定的值?。

public function update(Request $request, $id)
{
$user = User::find($id);
if(!is_null($user)){
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->password = $request->input('password');
$user->save();
}else{
$data = array('msg' => 'The user, you want to update, does not exist', 'error' => true);
echo json_encode($data);
}
}

最佳答案

您可以直接在请求输入中使用 update 方法。这只会更新提供的输入。

$user->update($request->only(['name', 'email', 'password']));

不过要注意的事情很少。您正在尝试直接从输入中更新密码。这是一个不好的做法,可能是错误的,因为 laravel 默认使用 bcrypt 来存储密码。其次确保在模型中设置 $fillable 属性以防止大规模分配。
protected $fillable = [
'name', 'email', 'password'
];

您也可以使用 mutator 像这样散列密码。
public function setPasswordAttribute($value)
{
$this->attributes['password'] = bcrypt($value);
}

关于php - Laravel 只更新单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43966149/

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