/**
  * @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;
 }
Beispiel #2
0
 /**
  * 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')];
 }