我有一个表employee
,它有一个可引用的列substitute
,引用另一个员工。我正在开发的API可以收到/employee/{employee_id}
的DELETE请求,它应该验证employee_id以确保它没有被任何其他行引用。基本上,我需要一个像这样的验证规则:
Validator::make($data, [
'employee_id' => '!exists:employee,substitute'
], [
'!exists' => 'Employee :employee_id cannot be deleted as it is being used as substitute for other employees' // custom message
])
Laravel是否有开箱即用的东西,或者我应该定义自定义验证规则吗?
答案 0 :(得分:1)
您可以使用unique
规则或创建新规则
'employee_id' => 'unique:employee,substitute'
或者
Validator::extend('not_exists', function($attribute, $value, $parameters, $validator) {
$exists = DB::table($parameters[0])
->where($parameters[1], '=', $value)
->exists();
return $exists === false;
});