/** * @param $data * @param $entity * @param $primaryId * @return QueryBuilder */ public function getQueryBuilderForEntity($data, $entity, $primaryId) { $metaData = $this->modelManager->getClassMetadata($entity); $table = $metaData->table['name']; $builder = $this->getQueryBuilder(); if ($primaryId) { $id = $builder->createNamedParameter($primaryId, \PDO::PARAM_INT); $builder->update($table); //update article id in case we don't have any field for update $builder->set('id', $id); $builder->where('id = ' . $id); } else { $builder->insert($table); } foreach ($data as $field => $value) { if (!array_key_exists($field, $metaData->fieldMappings)) { continue; } $key = $this->connection->quoteIdentifier($metaData->fieldMappings[$field]['columnName']); $value = $this->getNamedParameter($value, $field, $metaData, $builder); if ($primaryId) { $builder->set($key, $value); } else { $builder->setValue($key, $value); } } return $builder; }
/** * creates the DB tables on base of the Trusted Shops CustomModel */ private function createSchema() { $this->registerCustomModels(); $tool = new SchemaTool($this->em); $classes = array($this->em->getClassMetadata('Shopware\\CustomModels\\TrustedShops\\TrustedShops')); try { $tool->createSchema($classes); } catch (Exception $e) { } }
/** * @return array */ private function getDoctrineModels() { return [$this->em->getClassMetadata('Shopware\\CustomModels\\ImportExport\\Session'), $this->em->getClassMetadata('Shopware\\CustomModels\\ImportExport\\Logger'), $this->em->getClassMetadata('Shopware\\CustomModels\\ImportExport\\Profile'), $this->em->getClassMetadata('Shopware\\CustomModels\\ImportExport\\Expression')]; }