Fix "[Form] Add flexibility for EntityType"

This fixes commit e0a1294a44.
This commit is contained in:
Nicolas Grekas 2015-08-02 10:01:11 +02:00
parent a5a9385dbb
commit eb08baa9fc
3 changed files with 4 additions and 12 deletions

View File

@ -30,7 +30,7 @@ class ORMQueryBuilderLoader implements EntityLoaderInterface
*
* This property should only be accessed through queryBuilder.
*
* @var QueryBuilder|null
* @var QueryBuilder
*/
private $queryBuilder;
@ -68,7 +68,7 @@ class ORMQueryBuilderLoader implements EntityLoaderInterface
$queryBuilder = $queryBuilder($manager->getRepository($class));
if (null !== $queryBuilder && !$queryBuilder instanceof QueryBuilder) {
if (!$queryBuilder instanceof QueryBuilder) {
throw new UnexpectedTypeException($queryBuilder, 'Doctrine\ORM\QueryBuilder');
}
}
@ -81,10 +81,6 @@ class ORMQueryBuilderLoader implements EntityLoaderInterface
*/
public function getEntities()
{
if (null === $this->queryBuilder) {
return array();
}
return $this->queryBuilder->getQuery()->execute();
}
@ -93,10 +89,6 @@ class ORMQueryBuilderLoader implements EntityLoaderInterface
*/
public function getEntitiesByIds($identifier, array $values)
{
if (null === $this->queryBuilder) {
return array();
}
$qb = clone ($this->queryBuilder);
$alias = current($qb->getRootAliases());
$parameter = 'ORMQueryBuilderLoader_getEntitiesByIds_'.$identifier;

View File

@ -30,7 +30,7 @@ class EntityType extends DoctrineType
if (is_callable($queryBuilder)) {
$queryBuilder = call_user_func($queryBuilder, $options['em']->getRepository($options['class']));
if (!$queryBuilder instanceof QueryBuilder) {
if (null !== $queryBuilder && !$queryBuilder instanceof QueryBuilder) {
throw new UnexpectedTypeException($queryBuilder, 'Doctrine\ORM\QueryBuilder');
}
}

View File

@ -215,7 +215,7 @@ class EntityTypeTest extends TypeTestCase
public function testConfigureQueryBuilderWithClosureReturningNull()
{
$field = $this->factory->createNamed('name', 'entity', null, array(
$field = $this->factory->createNamed('name', 'Symfony\Bridge\Doctrine\Form\Type\EntityType', null, array(
'em' => 'default',
'class' => self::SINGLE_IDENT_CLASS,
'query_builder' => function () {