Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
77 lines (64 sloc) 1.53 KB
<?php
namespace Doctrine\Tests\ORM\Functional\Ticket;
use Doctrine\DBAL\Types\Type;
use Doctrine\DBAL\Platforms\AbstractPlatform;
/**
* @group DDC-2224
*/
class DDC2224Test extends \Doctrine\Tests\OrmFunctionalTestCase
{
public static function setUpBeforeClass()
{
parent::setUpBeforeClass();
\Doctrine\DBAL\Types\Type::addType('DDC2224Type', __NAMESPACE__ . '\DDC2224Type');
}
public function testIssue()
{
$dql = 'SELECT e FROM ' . __NAMESPACE__ . '\DDC2224Entity e WHERE e.field = :field';
$query = $this->_em->createQuery($dql);
$query->setParameter('field', 'test', 'DDC2224Type');
$this->assertStringEndsWith('.field = FUNCTION(?)', $query->getSQL());
}
}
class DDC2224Type extends Type
{
/**
* {@inheritdoc}
*/
public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform)
{
return $platform->getVarcharTypeDeclarationSQL($fieldDeclaration);
}
public function getName()
{
return 'DDC2224Type';
}
/**
* {@inheritdoc}
*/
public function canRequireSQLConversion()
{
return true;
}
/**
* {@inheritdoc}
*/
public function convertToDatabaseValueSQL($sqlExpr, AbstractPlatform $platform)
{
return sprintf('FUNCTION(%s)', $sqlExpr);
}
}
/**
* @Entity
*/
class DDC2224Entity
{
/**
* @Id @GeneratedValue @Column(type="integer")
*/
public $id;
/**
* @Column(type="DDC2224Type")
*/
public $field;
}
Jump to Line
Something went wrong with that request. Please try again.