Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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验证:与exists相反(值不应存在于给定的表、列中)_Php_Laravel_Validation - Fatal编程技术网

Php Laravel验证:与exists相反(值不应存在于给定的表、列中)

Php Laravel验证:与exists相反(值不应存在于给定的表、列中),php,laravel,validation,Php,Laravel,Validation,我有一个表employee,其中有一个可为空的列substitute引用另一个员工。我正在开发的API可以接收对/employee/{employee\u id}的删除请求,它应该验证employee\u id以确保它没有被任何其他行引用。所以基本上,我需要这样一个验证规则: Validator::make($data, [ 'employee_id' => '!exists:employee,substitute' ], [ '!exists' => 'Employ

我有一个表
employee
,其中有一个可为空的列
substitute
引用另一个员工。我正在开发的API可以接收对
/employee/{employee\u id}
的删除请求,它应该验证employee\u 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是否有类似的现成规则,或者我应该定义自定义验证规则?

可以使用
unique
规则,或者创建新规则

'employee\u id'=>'唯一:员工,替代者'

Validator::extend('not_exists',function($attribute,$value,$parameters,$Validator){
$exists=DB::table($parameters[0])
->其中($parameters[1],'=',$value)
->存在();
返回$exists==false;
});

Unique在这个用例中没有意义。我只想删除具有给定ID的eamploye,如果该ID未在替换列中用作引用。之后要做什么无关紧要,您想知道该值是否不存在,然后使用unique,这就像是一个技巧在这种情况下,第一个选项与问题无关,但是创建
not_exists
规则可能会很好。@balintant如果值是唯一的,不意味着它在表中不存在吗?@MahdiYounesi正确的代码是
->,其中($parameters[1],'=',$value)