我在更新电子邮件时遇到问题。 id
,prn
,rfid_number
工作正常。但在电子邮件中。我遇到了问题。这是我的验证:
$validate = $request -> validate([
'id' => 'required|numeric|unique:users,id,'.$user -> id,
'email' => 'required|email|unique:users,email,'.$user -> email,
'prn' => 'required|numeric|unique:users,prn,'.$user -> prn,
'rfid_number' => 'required|numeric|unique:users,rfid_number,'.$user -> rfid_number
]);

输入不在数据库中的电子邮件可以正常工作。但是当我输入现有模型的电子邮件时。 "电子邮件已被删除。"示出了
答案 0 :(得分:4)
如果您使用此request
进行更新操作,则需要从验证测试中删除unique:users,email
部分。这是因为如果电子邮件存在于users
表中(就像现有用户一样),验证会产生一些错误。您可以通过附加用户ID来使其唯一。
$validate = $request -> validate([
'id' => 'required|numeric|unique:users,id',
'email' => 'required|unique:users,email,'.$user->id
'prn' => 'required|numeric|unique:users,prn,'.$user -> prn,
'rfid_number' => 'required|numeric|unique:users,rfid_number,'.$user -> rfid_number
]);
如果仅提供此更新请求,则无需检查id
列的唯一性。因为在更新请求中,id
将是唯一的,因此验证将失败。另一方面,如果id
不存在,则无论如何更新操作都将失败。
答案 1 :(得分:1)