hasOne(SysUser::class, 'user_id', 'create_user_id')->field('user_id,nickname,avatar,username,status'); } public function searchNameAttr(Query $query, string $value): void { $value != "" && $query->where('name', 'like', '%' . $value . '%'); } public function searchPathAttr(Query $query, string $value): void { $value != "" && $query->where('path', 'like', '%' . $value . '%'); } public function searchCreateNicknameAttr(Query $query, string $value): void { $value != "" && $query->whereIn('create_user_id', SysUser::where('username', $value)->column('user_id')); } public function searchCreateTimeAttr(Query $query, array $value, array $data): void { $value = array_filter($value); count($value) >= 2 && $query->whereBetweenTime('request_time', $value[0], $value[1]); } public function getPreviewUrlAttr($previewUrl, $data) { if(!in_array($data['extension'],['jpg','jpeg','png','gif','txt'])){ // 仅部分文件支持 preview return ''; } return filesystem()->getFileUrl($data['rule_id'], $data['id'], $data['path'].'/'.$data['name']); } public function getDownloadUrlAttr($downloadUrl, $data) { return filesystem()->getDownloadUrl($data['id']); } }