Esempio n. 1
0
 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()));
     }
 }