created_at = time(); if (!empty($this->file_transcode)) { $this->file_transcode = kg_json_encode($this->file_transcode); } } public function beforeUpdate() { $this->updated_at = time(); if (!empty($this->file_transcode)) { $this->file_transcode = kg_json_encode($this->file_transcode); } } public function afterFetch() { if (!empty($this->file_transcode)) { $this->file_transcode = json_decode($this->file_transcode, true); } else { $this->getFileTranscode($this->file_id); } } protected function getFileTranscode($fileId) { if (!$fileId) return []; $vodService = new VodService(); $transcode = $vodService->getFileTranscode($fileId); if ($transcode && empty($this->file_transcode)) { $this->file_transcode = $transcode; $this->update(); /** * afterUpdate事件会序列化属性,需再次重设属性 */ $this->file_transcode = $transcode; } return $transcode; } }