मैं Doctrine 2.5 और SQL Server 2012 के साथ इस समस्या में भाग गया। समस्या यह है कि डेटाबेस फ़ील्ड DATETIME
टाइप है , लेकिन सिद्धांत केवल DATETIME2
. का समर्थन करता है SQLServer2008Platform और ऊपर।
आपको अपनी विक्रेता निर्देशिका में फ़ाइलों का संपादन नहीं करना चाहिए। सही उत्तर कस्टम प्रकार बनाना है:सिद्धांत कस्टम मैपिंग प्रकार . मेरे मामले में, मैंने वर्तमान डेटटाइम टाइप को बढ़ाया:
<?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;
}
}
और फिर सिम्फनी config.yml में:
types:
datetime: AppBundle\Doctrine\Type\DateTime