如何在验证期间忽略给定的 id
How to Ignore given id during validation
Do not down vote this question, I know it has been asked before but, I
couldn't find any with working answer!
我正在尝试使用唯一的电子邮件,但在验证过程中忽略了给定的 ID。
尝试了几种方法来完成这项工作,这里有两种方法很有希望,但没有奏效:
Validator::make($request->all(), [
'username' => ['username', Rule::unique('user', 'username')->ignore($user->id)]
]);
另一个:
'username' => 'required|max:30,',
Rule::unique('user')->ignore($user->id),
感谢帮助。
这是一些更多信息,以防您认为上面的示例绝对有效。
表格:
<input type="text" name="username" class="formClasses" id="usernameLocal"
value="{{ Auth::user()->username }}">
控制器:
public function saveUserChanges(Request $request){
$user = Auth::user();
$this->validate($request, [
'username' => 'required|max:30,',
Rule::unique('user')->ignore($user->id)
]);
$user->username = $request['username'];
$user->update();
return redirect()->route('userProfil', $user->userprofile->slug);
}
如果您试图保证电子邮件的唯一性,则规则如下:
Validator::make($data, [
'email' => [
'required',
Rule::unique('users')->ignore($user->id),
],
]);
如果您的字段不在您的用户 email
table 中,则执行此操作:
Validator::make($data, [
'email' => [
'required',
Rule::unique('users', 'column_name')->ignore($user->id),
],
]);
最后,如果您在用户 table 上的唯一 ID 不是 id
,则执行:
Validator::make($data, [
'email' => [
'required',
Rule::unique('users', 'column_name')->ignore($user->id, 'unique_key_name'),
],
]);
要直接使用您的代码,它看起来像这样:
$this->validate($request, [
'username' => [
'required',
'max:30',
Rule::unique('users')->ignore($user->id)
]
]);
我所做的更改是必需的,最大规则需要分开,并且所有规则都需要在一个数组中。我还将 table 从 user
更改为 users
,因为这是 Laravel 默认值。
中的文档
Do not down vote this question, I know it has been asked before but, I couldn't find any with working answer!
我正在尝试使用唯一的电子邮件,但在验证过程中忽略了给定的 ID。 尝试了几种方法来完成这项工作,这里有两种方法很有希望,但没有奏效:
Validator::make($request->all(), [
'username' => ['username', Rule::unique('user', 'username')->ignore($user->id)]
]);
另一个:
'username' => 'required|max:30,',
Rule::unique('user')->ignore($user->id),
感谢帮助。
这是一些更多信息,以防您认为上面的示例绝对有效。 表格:
<input type="text" name="username" class="formClasses" id="usernameLocal"
value="{{ Auth::user()->username }}">
控制器:
public function saveUserChanges(Request $request){
$user = Auth::user();
$this->validate($request, [
'username' => 'required|max:30,',
Rule::unique('user')->ignore($user->id)
]);
$user->username = $request['username'];
$user->update();
return redirect()->route('userProfil', $user->userprofile->slug);
}
如果您试图保证电子邮件的唯一性,则规则如下:
Validator::make($data, [
'email' => [
'required',
Rule::unique('users')->ignore($user->id),
],
]);
如果您的字段不在您的用户 email
table 中,则执行此操作:
Validator::make($data, [
'email' => [
'required',
Rule::unique('users', 'column_name')->ignore($user->id),
],
]);
最后,如果您在用户 table 上的唯一 ID 不是 id
,则执行:
Validator::make($data, [
'email' => [
'required',
Rule::unique('users', 'column_name')->ignore($user->id, 'unique_key_name'),
],
]);
要直接使用您的代码,它看起来像这样:
$this->validate($request, [
'username' => [
'required',
'max:30',
Rule::unique('users')->ignore($user->id)
]
]);
我所做的更改是必需的,最大规则需要分开,并且所有规则都需要在一个数组中。我还将 table 从 user
更改为 users
,因为这是 Laravel 默认值。