'require', // 发票类型 'header_type' => 'require|checkHeaderType',// 抬头类型 'name' => 'require',// 抬头名称 'email' => 'require',// 邮箱 'duty_number' => 'requireIf:header_type,'. OrderInvoiceEnum::HEADER_TYPE_COMPANY,// 税号 (企业类型必填) 'address' => 'requireIf:type,'. OrderInvoiceEnum::TYPE_SPEC,// 企业地址(专票类型必填) 'mobile' => 'requireIf:type,'. OrderInvoiceEnum::TYPE_SPEC,// 企业电话(专票类型必填) 'bank' => 'requireIf:type,'. OrderInvoiceEnum::TYPE_SPEC,// 快狐银行(专票类型必填) 'bank_account' => 'requireIf:type,'. OrderInvoiceEnum::TYPE_SPEC,// 银行账号(专票类型必填) ]; protected $message = [ 'type.require' => '请选择发票类型', 'header_type.require' => '请选择抬头类型', 'name.require' => '请填写抬头名称', 'email.require' => '请填写邮箱', 'duty_number.requireIf' => '请填写税号', 'address.requireIf' => '请填写企业地址', 'mobile.requireIf' => '请填写企业电话', 'bank.requireIf' => '请填写开户银行', 'bank_account.requireIf' => '请填写银行账号', ]; /** * @notes 校验 * @param $value * @param $rule * @param $data * @return bool|string * @author 段誉 * @date 2022/4/11 17:17 */ protected function checkHeaderType($value, $rule, $data) { if ($value == OrderInvoiceEnum::HEADER_TYPE_PERSONAL && $data['type'] == OrderInvoiceEnum::TYPE_SPEC) { return '专用发票抬头类型仅支持企业'; } return true; } }