Laravel 特定列的唯一关键字

Laravel Unique keyword for particular Column

我正在使用 "unique" 关键字来验证控制器中 employee_id 的唯一用户,在我的数据库中有一个名为 company_id 的列,在添加新用户时,他们将被设置为我们一些 company_id ,当我为我的公司添加新用户时,员工 ID 对我公司本身来说是唯一的,如果 employee_id 是另一家公司的 4 而我为我的公司添加 4 它必须接受,它将仅检查该特定公司。

       $this->validate($request, 
       [
        'name'      => 'required',
        'emp_id' => 'required|unique:users', (Here how can i check for particular company)
        'email' => 'required|unique:users',
        'role'  => 'required',
       ]); 

谁能帮帮我???

如果 emp_idcompany_id 在请求中

'emp_id' => 'required|unique:users,emp_id|unique:users,company_id',

签入文档:https://laravel.com/docs/master/validation#rule-unique

我假设 emp_idcompany_id 出现在 users table 中并且您正在发送请求

您应该在此处使用数组语法并使用 "custom" 唯一规则:

'emp_id' => [ "required",  Rule::unique('users')->where(function ($query) use ($request) {
   $query->where('emp_id', $request->emp_id)->where("company_id",$request->company_id); 
}) ]

反正就是这样