|
2 | 2 |
|
3 | 3 | namespace Gedmo\Translatable\Query\TreeWalker; |
4 | 4 |
|
| 5 | +use Doctrine\ORM\Mapping\ClassMetadata; |
5 | 6 | use Gedmo\Translatable\Mapping\Event\Adapter\ORM as TranslatableEventAdapter; |
6 | 7 | use Gedmo\Translatable\TranslatableListener; |
7 | 8 | use Doctrine\DBAL\Types\Type; |
@@ -296,41 +297,43 @@ private function prepareTranslatedComponents() |
296 | 297 | $em = $this->getEntityManager(); |
297 | 298 | $ea = new TranslatableEventAdapter(); |
298 | 299 | $ea->setEntityManager($em); |
| 300 | + $quoteStrategy = $em->getConfiguration()->getQuoteStrategy(); |
299 | 301 | $joinStrategy = $q->getHint(TranslatableListener::HINT_INNER_JOIN) ? 'INNER' : 'LEFT'; |
300 | 302 |
|
301 | 303 | foreach ($this->translatedComponents as $dqlAlias => $comp) { |
| 304 | + /** @var ClassMetadata $meta */ |
302 | 305 | $meta = $comp['metadata']; |
303 | 306 | $config = $this->listener->getConfiguration($em, $meta->name); |
304 | 307 | $transClass = $this->listener->getTranslationClass($ea, $meta->name); |
305 | 308 | $transMeta = $em->getClassMetadata($transClass); |
306 | | - $transTable = $em->getConfiguration()->getQuoteStrategy()->getTableName($transMeta, $this->platform); |
| 309 | + $transTable = $quoteStrategy->getTableName($transMeta, $this->platform); |
307 | 310 | foreach ($config['fields'] as $field) { |
308 | 311 | $compTblAlias = $this->walkIdentificationVariable($dqlAlias, $field); |
309 | 312 | $tblAlias = $this->getSQLTableAlias('trans'.$compTblAlias.$field); |
310 | 313 | $sql = " {$joinStrategy} JOIN ".$transTable.' '.$tblAlias; |
311 | | - $sql .= ' ON '.$tblAlias.'.'.$transMeta->getQuotedColumnName('locale', $this->platform) |
| 314 | + $sql .= ' ON '.$tblAlias.'.'.$quoteStrategy->getColumnName('locale', $transMeta, $this->platform) |
312 | 315 | .' = '.$this->conn->quote($locale); |
313 | | - $sql .= ' AND '.$tblAlias.'.'.$transMeta->getQuotedColumnName('field', $this->platform) |
| 316 | + $sql .= ' AND '.$tblAlias.'.'.$quoteStrategy->getColumnName('field', $transMeta, $this->platform) |
314 | 317 | .' = '.$this->conn->quote($field); |
315 | 318 | $identifier = $meta->getSingleIdentifierFieldName(); |
316 | | - $idColName = $meta->getQuotedColumnName($identifier, $this->platform); |
| 319 | + $idColName = $quoteStrategy->getColumnName($identifier, $meta, $this->platform); |
317 | 320 | if ($ea->usesPersonalTranslation($transClass)) { |
318 | 321 | $sql .= ' AND '.$tblAlias.'.'.$transMeta->getSingleAssociationJoinColumnName('object') |
319 | 322 | .' = '.$compTblAlias.'.'.$idColName; |
320 | 323 | } else { |
321 | | - $sql .= ' AND '.$tblAlias.'.'.$transMeta->getQuotedColumnName('objectClass', $this->platform) |
| 324 | + $sql .= ' AND '.$tblAlias.'.'.$quoteStrategy->getColumnName('objectClass', $transMeta, $this->platform) |
322 | 325 | .' = '.$this->conn->quote($config['useObjectClass']); |
323 | 326 |
|
324 | 327 | $mappingFK = $transMeta->getFieldMapping('foreignKey'); |
325 | 328 | $mappingPK = $meta->getFieldMapping($identifier); |
326 | 329 | $fkColName = $this->getCastedForeignKey($compTblAlias.'.'.$idColName, $mappingFK['type'], $mappingPK['type']); |
327 | | - $sql .= ' AND '.$tblAlias.'.'.$transMeta->getQuotedColumnName('foreignKey', $this->platform) |
| 330 | + $sql .= ' AND '.$tblAlias.'.'.$quoteStrategy->getColumnName('foreignKey', $transMeta, $this->platform) |
328 | 331 | .' = '.$fkColName; |
329 | 332 | } |
330 | 333 | isset($this->components[$dqlAlias]) ? $this->components[$dqlAlias] .= $sql : $this->components[$dqlAlias] = $sql; |
331 | 334 |
|
332 | | - $originalField = $compTblAlias.'.'.$meta->getQuotedColumnName($field, $this->platform); |
333 | | - $substituteField = $tblAlias.'.'.$transMeta->getQuotedColumnName('content', $this->platform); |
| 335 | + $originalField = $compTblAlias.'.'.$quoteStrategy->getColumnName($field, $meta, $this->platform); |
| 336 | + $substituteField = $tblAlias.'.'.$quoteStrategy->getColumnName('content', $transMeta, $this->platform); |
334 | 337 |
|
335 | 338 | // Treat translation as original field type |
336 | 339 | $fieldMapping = $meta->getFieldMapping($field); |
|
0 commit comments