"int", "signup_guid" => "string", "signup_user_name" => "string", "signup_user_phone" => "string", "signup_user_parents_phone" => "string", "signup_user_home_address" => "string", "signup_user_original_school" => "string", "signup_user_arrival_time" => "datetime", "classes_guid" => "string", "signup_user_grad_type" => "int", "signup_status" => "int", "signup_create_time" => "datetime", "signup_create_user_guid" => "string", "signup_update_time" => "datetime", "signup_update_user_guid" => "string", "signup_delete_time" => "datetime", "signup_delete_user_guid" => "string", ]; // 设置json类型字段 protected $json = ['']; // 开启自动写入时间戳字段 protected $autoWriteTimestamp = 'datetime'; // 创建时间 protected $createTime = 'signup_create_time'; // 修改时间 protected $updateTime = 'signup_update_time'; // excel导出模板表头 public const EXPORT_EXCEL_FIELD = [ 'signup_user_name' => '用户名称', 'signup_user_phone' => '用户电话', 'signup_user_parents_phone' => '家长电话', 'signup_user_home_address' => '家庭地址', 'signup_user_original_school' => '原就读学校', 'signup_user_arrival_time' => '预计到校时间', 'classes_name' => '所择班级', 'signup_user_grad_type' => '毕业类型', 'signup_status' => '报名受理状态', 'signup_create_time' => '报名时间', ]; /** * 新增前 */ public static function onBeforeInsert(self $model): void { $model->completeCreateField(); } /** * 更新前 */ public static function onBeforeUpdate(self $model): void { $model->completeUpdateField(); } /** * 删除前 */ public static function onBeforeDelete(self $model): void { $model->completeDeleteField(); } /** * 导出Excel * * @param array $select导出的数据集合 */ public static function exportExcel(array $select): void { $processing_state_data = ModelDictionary::getDictionaryData('processing_state'); $graduation_type_data = ModelDictionary::getDictionaryData('graduation_type'); $export_excel_fields = self::EXPORT_EXCEL_FIELD; $data = [array_values($export_excel_fields)]; foreach ($select as $key => $val) { foreach (array_keys($export_excel_fields) as $field_name) { $value = $val[$field_name]; switch ($field_name) { case 'signup_status': //毕业类型 $value = ModelDictionary::getDataDictionaryName($processing_state_data, $value); break; case 'signup_user_grad_type': //报名受理状态 $value = ModelDictionary::getDataDictionaryName($graduation_type_data, $value); break; } $data[$key + 1][$field_name] = $value; } } $excel = (new Excel())->exporTsheet($data); $excel->save('在线报名.xlsx'); } }