/** * update document * * @param ItemEntity $item board item entity * @return void */ public function put(ItemEntity $item) { $doc = $item->getDocument(); // 비회원 글 수정시 비밀번호를 입력 안한 경우 $origin = $doc->getOriginal(); if ($origin['certifyKey'] != '' && $doc->certifyKey == '') { $doc->certifyKey = $origin['certifyKey']; } $doc = $this->document->put($doc); if ($item->slug != $item->getSlug()->slug) { $slugEntity = $item->getSlug(); $slugEntity->slug = $item->slug; $this->slug->update($item->getSlug()); } // file 이 없어진걸 처리해야해.. 파일을 삭제한 경우를 말이지! $currentFileIds = []; /** @var \Xpressengine\Storage\File $file */ foreach ($this->storage->getsByTargetId($item->id) as $file) { $currentFileIds[] = $file->getId(); } $uploadedFileIds = []; /** @var \Xpressengine\Storage\File $file */ foreach ($item->getFiles() as $file) { $uploadedFileIds[] = $file->getId(); $this->storage->bind($doc->id, $file); } $files = $this->storage->getsIn(array_diff($currentFileIds, $uploadedFileIds)); foreach ($files as $file) { $this->storage->unBind($item->id, $file, true); } }