Ik kwam dit probleem tegen met Doctrine 2.5 en SQL Server 2012. Het probleem is dat het databaseveld DATETIME
is. , maar doctirne ondersteunt alleen DATETIME2
op SQLServer2008Platform en hoger.
U mag geen bestanden in uw leveranciersmap bewerken. Het juiste antwoord is om een aangepast type te maken:Doctrine Custom Mapping Types . In mijn geval heb ik het huidige DateTimeType uitgebreid:
<?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;
}
}
En dan in de Symfony config.yml:
types:
datetime: AppBundle\Doctrine\Type\DateTime