public function testArray() { $photo = new Photo(); $photo->setNom('wohoo'); $serialized = $this->type->convertToDatabaseValue([$photo], $this->plateform); $unserialized = $this->type->convertToPHPValue($serialized, $this->plateform); $this->assertInstanceOf(Photo::class, $unserialized[0]); /** @var Photo $var */ $var = $unserialized[0]; $this->assertEquals('wohoo', $var->getNom()); }
/** * @param DateTimeOfDay $value * @param AbstractPlatform $platform * * @return string */ public function convertToDatabaseValue($value, AbstractPlatform $platform) { if ($value instanceof DateTimeOfDay) { return $value->toDateTime()->format($platform->getDateTimeFormatString()); } return parent::convertToDatabaseValue($value, $platform); }
/** * (non-PHPdoc) * @see \Doctrine\DBAL\Types\Type::convertToDatabaseValue() */ public function convertToDatabaseValue($value, AbstractPlatform $platform) { if ($value === null) { return null; } elseif ($value instanceof \DateTime) { return $value->format('Y-m-d H:i:s.uO'); } elseif (is_string($value)) { try { return parent::convertToDatabaseValue($value, $platform); } catch (\Exception $e) { try { $dt = new \DateTime($value); return $dt->format('Y-m-d H:i:s.uO'); } catch (\Exception $e) { throw new \Exception('Date "' . $value . '" is not a valid date'); } } } throw new \Exception('Date "' . $value . '" is not a valid date'); }
/** * @dataProvider phpValueProvider */ public function testConversionToSQL($value, $expected) { $sql = $this->type->convertToDatabaseValue($value, $this->platform); $this->assertEquals($expected, $sql); }
public function testNullConversionForDatabaseValue() { $this->assertNull($this->type->convertToDatabaseValue(null, $this->platform)); }
private function value(EntityManager $em, Type $type, $value) { $platform = $em->getConnection()->getDatabasePlatform(); switch ($type->getName()) { case Type::BOOLEAN: return $type->convertToPHPValue($value, $platform); // json supports boolean values // json supports boolean values default: return $type->convertToDatabaseValue($value, $platform); } }