Laravel唯一的关键字为特定的列
我正在使用“唯一”关键字验证employee_id在控制器中的唯一用户,在我的数据库有列名为company_id,而添加新用户时,他们将设置我们一些company_id,当我添加我的公司员工ID的新用户对我公司本身而言将是唯一的,如果employee_id为另一家公司的4,并且我为公司必须接受4的公司,那么它只会检查该公司。Laravel唯一的关键字为特定的列
$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_id' => [ "required", Rule::unique('users')->where(function ($query) use ($request) {
$query->where('emp_id', $request->emp_id)->where("company_id",$request->company_id);
}) ]
像这样的东西反正
如果emp_id
和company_id
是要求
'emp_id' => 'required|unique:users,emp_id|unique:users,company_id',
入住文档:https://laravel.com/docs/master/validation#rule-unique
我认为emp_id
和company_id
存在于users
表,你是在请求发送
我怎么能检查这个EMP_ID = '4' 出现在特定的company_id = '高科技' .. 'emp_id为'=> '需要|独特:用户,COMPANY_ID,$ COMPANY_ID' , – user7346035
你发送的是'emp_id'还是'company_id',并存在于哪个表中的用户? – C2486
我想检查company_id的emp_id。如果company_id ='tech'的emp_id ='4'已经存在于数据库中,我可以为company_id ='technology'添加emp_id ='4',但我无法为company_id ='4'添加emp_id ='4' '技术'和'技术'..你明白了吗? – user7346035
我很欣赏你的答案,只是想知道它是否与我给出的'emp_id'=>'required | unique:users,emp_id | unique:users,company_id','? – C2486
不,'unique |:users,emp_id | unique:users,company_id'要求'emp_id'在用户的'emp_id'和'company_id'上是唯一的。这不太可能是需要的,因为'company_id'和'emp_id'不是同一种标识符。这个答案假设有第二个请求字段'$ request-> company_id',它也必须满足唯一条件(实际上'emp_id,company_id'必须是唯一的组合) – apokryfos
你是对的:) – C2486