public function insert(IResource $resource) { try { if (ResourceType::TV === $resource->getType()) { $tv_data = $resource->getRawData(); unset($tv_data['content_values'], $tv_data['templates']); $this->connection->insertQuery()->table($this->table_map[$resource->getType()])->data($tv_data)->execute(); $templates = []; foreach ($resource->getTemplates() as $templateid) { $templates[] = [$templateid, $resource->getId()]; } if (count($templates)) { $this->connection->insertQuery()->table($this->tv_templates_table)->batchData(['templateid', 'tmplvarid'], $templates)->execute(); } $content_values = []; foreach ($resource->getContentValues() as $contentid => $value) { $content_values[] = [$contentid, $resource->getId(), $value]; } if (count($content_values)) { $this->connection->insertQuery()->table($this->tv_content_values_table)->batchData(['contentid', 'tmplvarid', 'value'], $content_values)->execute(); } } else { $this->connection->insertQuery()->table($this->table_map[$resource->getType()])->data($resource->getRawData())->execute(); } } catch (\Exception $ex) { die(dump($resource, $ex->getMessage())); } }