【问题标题】:laravel 7 profile udpate wiith email unique:userslaravel 7 个人资料更新与电子邮件唯一:用户
【发布时间】:2021-07-10 08:32:31
【问题描述】:

我正在尝试更新用户个人资料。一切正常,但是当我尝试更新名称而不更新电子邮件时。它给出了一个错误,说电子邮件已经存在。 我也尝试过文档中的方法,但它不起作用。我正在使用 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();

现在可以了。

【问题讨论】:

  • ['sometimes','required', Rule::unique('users')->ignore($userId)], 添加sometimes
  • 还是不行
  • 试试这个'email' => ['required','unique:users,email,' . $userId,],

标签: laravel validation unique laravel-7 rules


【解决方案1】:

您可以像这样使用 update 代替 create

$user::update([
    'name' => $validate['name'],
    'email' => $validate['email'],
    'password' => Hash::make($password),
]);

【讨论】:

    猜你喜欢
    • 2016-04-21
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    相关资源
    最近更新 更多