我在管理控制台中添加和编辑的用户也删除了。除编辑外,一切正常。在编辑过程中,他要求每次更改电子邮件。但是我不知道如何使它起作用。例如,我只想更改名称或密码。这样就不必更改电子邮件了。
这是我的更新和编辑功能 `
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');
}
`
答案 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');
}