Laravel特定列的唯一关键字

时间:2017-09-16 08:33:29

标签: php laravel laravel-5.3

我正在使用“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',
       ]); 
谁能帮助我?

2 个答案:

答案 0 :(得分:2)

您应该在此处使用数组语法并使用“自定义”唯一规则:

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

无论如何都是这样的

答案 1 :(得分:1)

如果请求emp_idcompany_id

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

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

我认为emp_id表中存在company_idusers并且您要发送请求