'require|checkDiagnosis', 'patient_name' => 'require|length:1,50', 'id_card' => 'length:15,18', 'phone' => 'require|mobile', 'gender' => 'require|in:0,1', 'age' => 'require|number|between:0,150', 'diagnosis_date' => 'require', 'diagnosis_type' => 'require', 'syndrome_type' => 'require', 'status' => 'in:0,1', ]; protected $message = [ 'id.require' => '参数缺失', 'patient_name.require' => '请输入患者姓名', 'patient_name.length' => '患者姓名长度须在1-50位字符', 'id_card.length' => '身份证号长度不正确', 'phone.require' => '请输入手机号', 'phone.mobile' => '手机号格式不正确', 'gender.require' => '请选择性别', 'gender.in' => '性别参数错误', 'age.require' => '请输入年龄', 'age.number' => '年龄必须为数字', 'age.between' => '年龄范围0-150', 'diagnosis_date.require' => '请选择诊断日期', 'diagnosis_type.require' => '请选择诊断类型', 'syndrome_type.require' => '请选择证型', 'status.in' => '状态参数错误', ]; public function sceneAdd() { return $this->remove('id', true); } public function sceneEdit() { return $this->only(['id', 'patient_name', 'id_card', 'phone', 'gender', 'age', 'diagnosis_date', 'diagnosis_type', 'syndrome_type', 'past_history', 'symptoms', 'tongue_coating', 'pulse', 'treatment_principle', 'prescription', 'doctor_advice', 'remark', 'status']); } public function sceneId() { return $this->only(['id']); } public function sceneGenerateQrcode() { return $this->only(['diagnosis_id', 'patient_id', 'share_user_id']) ->append('diagnosis_id', 'require') ->append('patient_id', 'require') ->append('share_user_id', 'require'); } protected function checkDiagnosis($value) { $diagnosis = Diagnosis::findOrEmpty($value); if ($diagnosis->isEmpty()) { return '诊单不存在'; } return true; } }