Ich möchte Carbon Objekte in meiner Symfony 3.2-Anwendung anstelle des SPL \ DateTime-Objekts verwenden. Ich habe eine Reihe von DoctrineExtension-Klassen in here gefunden.Doctrine2-Typen in Symfony3 überschreiben
meine config.yml Datei Editiert:
Doctrine\DBAL\Types\Type::getTypesMap()
Und die Abbildung auch richtig funktioniert (liefert carbondatetime
):
doctrine:
dbal:
...
types:
carbondatetime: DoctrineExtensions\Types\CarbonDateTimeType
carbondate: DoctrineExtensions\Types\CarbonDateType
carbontime: DoctrineExtensions\Types\CarbonTimeType
mapping_types:
datetime: carbondatetime
date: carbondate
enum: string
time: carbontime
ich erfolgreich überprüfen, ob die Typen mit geladen werden
$this->getDoctrine()->getManager()
->getConnection()->getDatabasePlatform()
->getDoctrineTypeMapping('datetime');
Ich führe eine Abfrage über ein Doctrine-Repository und immer noch DateTime Objekte. Es ist in 2 Fällen arbeiten:
- das Entity Wechsel zu
@ORM\Column(type="carbondatetime")
- Oder den folgenden Code ausführen
\Doctrine\DBAL\Types\Type::overrideType('datetime', 'DoctrineExtensions\Types\CarbonDateTimeType');
Gibt es eine Best-Practice Überschreibung die Lehre DBAL Typen? Vorzugsweise in der YAML-Konfiguration.
Dank