Ich bin auf dieses Problem mit Doctrine 2.5 und SQL Server 2012 gestoßen. Das Problem ist, dass das Datenbankfeld vom Typ DATETIME
ist , aber doctirne unterstützt nur DATETIME2
auf SQLServer2008Platform und höher.
Sie sollten keine Dateien in Ihrem Herstellerverzeichnis bearbeiten. Die richtige Antwort ist, einen benutzerdefinierten Typ zu erstellen:Benutzerdefinierte Zuordnungstypen der Lehre . In meinem Fall habe ich den aktuellen DateTimeType erweitert:
<?php
namespace AppBundle\Doctrine\Type;
use Doctrine\DBAL\Types\DateTimeType;
use Doctrine\DBAL\Platforms\AbstractPlatform;
class DateTime extends DateTimeType
{
private $dateTimeFormatString = 'Y-m-d H:i:s.000';
public function convertToDatabaseValue($value, AbstractPlatform $platform)
{
return ($value !== null)
? $value->format($this->dateTimeFormatString) : null;
}
}
Und dann in der Symfony config.yml:
types:
datetime: AppBundle\Doctrine\Type\DateTime