laravel - laravel 7 个人资料更新与电子邮件唯一:用户
问题描述
我正在尝试更新用户个人资料。一切正常,但是当我尝试更新名称而不更新电子邮件时。它给出了一个错误,说电子邮件已经存在。我也尝试过文档中的方法,但它不起作用。我正在使用 laravel 7 这是我的代码
$userId = auth()->user()->id;
$validate = $request->validate([
'name' => 'required|string',
'email' => ['required', Rule::unique('users')->ignore($userId)],
'password' => 'required|',
]);
$user = User::find(auth()->user()->id);
$password = $request->password;
$user::create([
'name' => $validate['name'],
'email' => $validate['email'],
'password' => Hash::make($password),
]);
注意:我刚刚修复了它
我没有更新我正在创建一个新的配置文件。我正在使用 $user::create 但是这段代码在表中创建了另一行,这就是验证不起作用的原因,所以我用这段代码替换了它
$user->name = $request->name;
$user->email = $request->email;
$user->password = Hash::make($password);
$user->save();
现在它起作用了。
解决方案
您可以使用update代替create,如下所示:
$user::update([
'name' => $validate['name'],
'email' => $validate['email'],
'password' => Hash::make($password),
]);
推荐阅读
- unity3d - Agora 的自定义视频源示例代码报错
- sql-server - 如何使用 sqoop 将数据导出到具有自动增量 ID 的 Microsoft Sql Table?
- python - spaCy nlp - 替换字符串
- php - curl 多次后不返回响应或 http 代码
- netsuite - 如何从已保存的搜索与列表中的高级 PDF 模板打印一个结果?
- excel - 如何在 Excel 中将 UTC 转换为日期时间
- vb.net - Directory.GetFiles 方法在 VB 中不起作用
- node.js - 在 Node 中将 CSV 对象转换为 JSON 对象
- sql - T-SQL 表获取正确查询
- arrays - 为什么我的一维直方图没有正确显示?