我在我的Laravel-5.8代码中有这个请求规则:
public function rules()
{
return [
'activate_msf' => [
'nullable',
Rule::unique('appraisal_parameters')->where(function ($query) {
return $query->where('company_id', $this->company_id)
->where('activate_msf', $this->activate_msf);
})
],
'max_internal_respondent' => [
'nullable',
'numeric',
'min:1',
'max:30',
'gt:min_internal_respondent',
],
'min_internal_respondent' => [
'nullable',
'numeric',
'min:1',
'max:30',
],
];
}
activate_msf是tinyint(1),可以是0或1。
我如何验证min_internal_答辩和max_internal_答辩只需要当activate_msf = 1?
感谢您可以使用required_if规则来实现验证:
public
function rules()
{
$rules= [
'activate_msf' => [
'nullable',
Rule::unique('appraisal_parameters')->where(function ($query) {
return $query->where('company_id', $this->company_id)
->where('activate_msf', $this->activate_msf);
})
],
'max_internal_respondent' => [
'required_if:activate_msf,1',
'numeric',
'min:1',
'max:30',
'gt:min_internal_respondent',
],
'min_internal_respondent' => [
'required_if:activate_msf,1',
'numeric',
'min:1',
'max:30',
],
];
}