Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel:更新时句柄唯一_Php_Laravel - Fatal编程技术网

Php Laravel:更新时句柄唯一

Php Laravel:更新时句柄唯一,php,laravel,Php,Laravel,在更新过程中,我正在对员工记录进行验证。有些字段应该是唯一的。但是在更新员工记录的过程中,将对唯一字段进行验证。我也研究并尝试了这个解决方案。 但我得到了一个错误: 错误代码:904错误消息:ORA-00904:“ID”:无效标识符 位置:71语句:从中选择count()作为聚合 “员工”,其中“电子邮件”=:p0和“ID”:p1绑定: [ad@sdfdsf.com,3336](SQL:从中选择count()作为聚合 “员工”,其中“电子邮件”=ad@sdfdsf.com及“ID”3336) 以

在更新过程中,我正在对员工记录进行验证。有些字段应该是唯一的。但是在更新员工记录的过程中,将对唯一字段进行验证。我也研究并尝试了这个解决方案。 但我得到了一个错误:

错误代码:904错误消息:ORA-00904:“ID”:无效标识符 位置:71语句:从中选择count()作为聚合 “员工”,其中“电子邮件”=:p0和“ID”:p1绑定: [ad@sdfdsf.com,3336](SQL:从中选择count()作为聚合 “员工”,其中“电子邮件”=ad@sdfdsf.com及“ID”3336)

以下是我对解决方案的尝试:

有时,您可能希望在唯一检查期间忽略给定的ID。 例如,考虑一个“更新配置文件”屏幕,其中包括 用户名、电子邮件地址和位置。当然,你会想要的 验证电子邮件地址是否唯一。但是,如果用户仅 更改名称字段而不是电子邮件字段,则不需要 要引发的验证错误,因为用户已经是的所有者 电子邮件地址

为了指示验证器忽略用户的ID,我们将使用规则 类以流畅地定义规则。在本例中,我们还将指定 将验证规则作为数组,而不是使用|字符 界定规则:


我发现了错误,并成功地找到了解决办法。这是一个有效的解决方案,以防任何人面临类似的问题。我必须传递单个用户的employee\u id,而我传递的是多个用户的employee\u id

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.',employee_id|regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/',
                'home_phone' => "unique:employees,home_phone,$employee_id,employee_id|numeric",
                'mobile' => "required|unique:employees,mobile,$employee_id,employee_id|numeric",
                'job_id' => 'required',
                'department_id' => 'required',
                'group_id' => 'required',
                'node' => 'required',
                'branch' => 'required',
                'username' => "required|unique:employees,username,".$employee_id.',employee_id|regex:/[A-Za-z0-9][.][A-Za-z0-9]/',
                'exchange_username' => "required|unique:employees,exchange_username,".$employee_id.',employee_id|regex:/[A-Za-z0-9][.][A-Za-z0-9]/',
                'extension' => "required|unique:employees,mobile,$employee_id,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' );
    }

检查您的列名。必须输入有效的列名。当你没有发现这个错误时,我已经检查过了。列名正确。哪一行是
71
?请查看我下面更新的部分。我已经发布了导致错误发生的错误部分。我没有使用Laravel的Validator类,所以这个过程对我不起作用。我已经阅读了Laravel文档并使用了它们,但没有得到预期的解决方案。请回顾我在上面发布的尝试。@DixonChaudhary在您的案例中,
Validator::make($data,
可以替换为
$this->validate($request,
),但是您确实需要规则对象,并且验证规则也可以定义为
数组
,而不是由
分隔的
字符串
use Illuminate\Validation\Rule;

Validator::make($data, [
    'email' => [
        'required',
        Rule::unique('users')->ignore($user->id),
    ],
]);
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.',employee_id|regex:/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/',
                'home_phone' => "unique:employees,home_phone,$employee_id,employee_id|numeric",
                'mobile' => "required|unique:employees,mobile,$employee_id,employee_id|numeric",
                'job_id' => 'required',
                'department_id' => 'required',
                'group_id' => 'required',
                'node' => 'required',
                'branch' => 'required',
                'username' => "required|unique:employees,username,".$employee_id.',employee_id|regex:/[A-Za-z0-9][.][A-Za-z0-9]/',
                'exchange_username' => "required|unique:employees,exchange_username,".$employee_id.',employee_id|regex:/[A-Za-z0-9][.][A-Za-z0-9]/',
                'extension' => "required|unique:employees,mobile,$employee_id,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' );
    }