我在更新期间使用了员工记录的验证。有些领域应该是独一无二的。但在更新员工记录期间,正在对唯一字段进行验证。我也研究过并尝试了解决方案。 但是我收到了这个错误:
错误代码:904错误消息:ORA-00904:“ID”:标识符无效 位置:71声明:选择计数()作为聚合 “EMPLOYEES”,其中“EMAIL”=:p0和“ID”<> :p1绑定: [ad @ sdfdsf.com,3336](SQL:选择count()作为聚合来自 “EMPLOYEES”,其中“EMAIL”= ad@sdfdsf.com和“ID”<> 3336)
以下是我尝试解决方案:
public function update(Request $request, int $employee_id) {
$this->validate ( $request, [
'first_name' => "required|max:220|regex:/[a-z]/",
'middle_name' => "max:120",
'last_name' => "required|max:220|regex:/[a-z]/",
'email' => "required|unique:employees, email, $employee_id|regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/",
'home_phone' => "unique:employees,home_phone, $employee_id|numeric|regex:/^[09][0-9]{8,9}$/",
'mobile' => "unique:employees,mobile, $employee_id|numeric|regex:/(9)[0-9]{9}/",
'job_id' => 'required',
'department_id' => 'required',
'group_id' => 'required',
'node' => 'required',
'branch' => 'required',
'username' => "required|unique:employees,username, $employee_id|regex:/[A-Za-z0-9][.][A-Za-z0-9]/",
'exchange_username' => "required|unique:employees,exchange_username, $employee_id|regex:/[A-Za-z0-9][.][A-Za-z0-9]/",
'extension' => "unique:employees,extension, $employee_id|numeric|regex:/[0-9]{4}/",
] );
Employee::where ('employee_id', $employee_id )->update ( $request->only ( [
'first_name',
'middle_name',
'last_name',
'email',
'address',
'home_phone',
'mobile',
'job_id',
'department_id',
'group_id',
'branch',
'node',
'name',
'username',
'type',
'exchange_username',
'toggle_ivr_access',
'extension',
'attributed_team',
'cable_team_id',
'disable',
] ) );
Session::flash ( 'message', 'The Employee is Successfully Updated.' );
return redirect ()->route ( 'employees.index' );
}
答案 0 :(得分:0)
Forcing A Unique Rule To Ignore A Given ID:
有时,您可能希望在唯一检查期间忽略给定的ID。 例如,考虑包含“更新配置文件”的屏幕 用户的姓名,电子邮件地址和位置。当然,你会想要的 验证电子邮件地址是否唯一。但是,如果只是用户 更改名称字段而不是电子邮件字段,您不需要 要抛出验证错误,因为用户已经是其所有者 电子邮件地址。
要指示验证者忽略用户的ID,我们将使用规则 类可以流畅地定义规则。在这个例子中,我们还将指定 验证规则作为数组而不是使用|性格 划定规则:
use Illuminate\Validation\Rule;
Validator::make($data, [
'email' => [
'required',
Rule::unique('users')->ignore($user->id),
],
]);
答案 1 :(得分:0)
我弄清楚了错误并成功找到了解决方案。如果有人遇到类似的问题,这是工作解决方案。我必须传递单个用户的employee_id,而我传递的是多个用户的employee_id。
New-AzureADMSInvitation -InvitedUserEmailAddress "test@contoso.com" -InviteRedirectUrl https://myapps.microsoft.com -InvitedUserDisplayName 'TestUser' -InvitedUserMessageInfo $messageInfo -InvitedUserType member -SendInvitationMessage $true