如上 我已经定义了规则sometimes 但是还是会对这个字段进行验证
我的需求是 用户输入数据进行验证 否则不验证
sometimes
不是空值不验证,而是不存在的时候不验证, 官网手册原话:
In some situations, you may wish to run validation checks against a field only if that field is present in the input array. To quickly accomplish this, add the sometimes rule to your rule list:
对于你的问题,你提交的表单假如 patient_yunci
是空值,但不代表它不存在。
所以你需要的是nullable
规则,而不是sometimes
或者 直接让前端不要呈现为空的可选字段。
这是我表单提交的数据
这是我的规则
public function rules()
{
return [
'patient_name' => "required",
'patient_mobile' => "required|regex:/^1[34578][0-9]{9}$/",
'patient_idcard' => array('regex:/^\d{14}(\d{1}|\d{4}|(\d{3}[xX]))$/'),
'patient_address' => 'required',
'patient_insurance_number' => 'sometimes',
'patient_height' => 'nullable|max:250',
'patient_weight' => 'nullable|max:250',
'patient_bp_diastolic' => 'sometimes|max:500',
'patient_bp_systolic' => 'sometimes|max:500',
'patient_yunci' => 'sometimes|max:32767',
'patient_chanci' => 'sometimes|max:32767',
'patient_gestational_weeks' => 'sometimes|max:32767',
'patient_gestational_days' => 'sometimes|max:32767',
];
}
我就不知道问题在哪了 nullable与sometimes都不管用 之前定在model的时候 可以使用
这个应该是对的. 你输出 passes(), 以及 messages() 瞧瞧.