Laravel编辑用户数据,但显示输入电子邮件错误。该电子邮件已经被接收

时间:2020-04-07 12:38:42

标签: php laravel

我在管理控制台中添加和编辑的用户也删除了。除编辑外,一切正常。在编辑过程中,他要求每次更改电子邮件。但是我不知道如何使它起作用。例如,我只想更改名称或密码。这样就不必更改电子邮件了。

这是我的更新和编辑功能 `

public function edit($id)
{
    $object = Specialist::findOrFail($id);
    return view('Backend.specialists.edit', compact('object'));
}

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \App\Specialist  $specialist
 * @return \Illuminate\Http\Response
 */
public function update(Request $request, $id)
{
    $data = $request->validate([
        'name' => 'required|string',
        'email' => 'required|email|unique:users',
        'password' => 'required|string|min:8|confirmed'
    ]);

    $object = Specialist::findOrFail($id);
    $object->groups = 3;
    $object->password = \Hash::make($data['password']);
    $object->fill(request()->except('password'));

    $object->save();

    return redirect()->route('specialists.index');
}

`

Input Error Image

1 个答案:

答案 0 :(得分:0)

您尝试将电子邮件地址写入一个表,该表中仍然存在相同的值(作为相同的记录)。

我不能正确测试验证权限,但尝试使用ignore rule

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \App\Specialist  $specialist
 * @return \Illuminate\Http\Response
 */
public function update(Request $request, $id)
{
    $object = Specialist::findOrFail($id);

    $data = $request->validate([
        'name' => 'required|string',
        'email' => [
            'required',
            Rule::unique('users')->ignore($object->id),
        ],
        'password' => 'required|string|min:8|confirmed'
    ]);

    $object->groups = 3;
    $object->password = \Hash::make($data['password']);
    $object->fill(request()->except('password'));

    $object->save();

    return redirect()->route('specialists.index');
}
相关问题