hasOne('Engineer', 'id', 'engineer_id', [], 'LEFT')->setEagerlyType(0); } public static function getMessageAttr($value, $data) { if ($data['message_type'] == 0 || $data['message_type'] == 3) { return [ 'original' => $value, 'html' => "
{$value}
" ]; } elseif ($data['message_type'] == 1) { $value = cdnurl($value, true); return [ 'original' => $value, 'html' => "" ]; } elseif ($data['message_type'] == 2) { // 文件地址可能是完整的url,可能是cdn的url // 此处只能计算本地文件的大小 $domain = cdnurl('', true); if (strpos($value, $domain) !== false) { $value = str_replace($domain, '', $value); } $filePath = str_replace('/', DS, ROOT_PATH . 'public' . $value); if (!file_exists($filePath)) { $fileExt = General::getFileExtension($value); $fileSize = false; } else { $fileObj = new \think\File($filePath); $fileExt = $fileObj->getExtension(); $fileSize = $fileObj->getSize(); unset($fileObj); } $fileSize = $fileSize ? General::formatFileSize($fileSize) : __('Unknown size'); $value = cdnurl($value, true); $imgIconUrl = url('index/workorder/icon', ['suffix' => $fileExt], true, true); $fileName = __('%s file', [$fileExt]); $textHtml = <<

{$fileName}

{$fileSize}

HTML; return [ 'original' => [ 'url' => $value, 'ext' => $fileExt, 'size' => $fileSize ], 'html' => $textHtml ]; } elseif ($data['message_type'] == 4) { return [ 'original' => $data['id'], 'html' => "
" . __('Confidential information is hidden') . "
" ]; } } }