[Doctrine] Cleanup and move loader into its own method

This commit is contained in:
Benjamin Eberlei 2011-12-12 22:55:53 +01:00 committed by Christophe Coevoet
parent 7646a5bc6d
commit 3c81b62955
2 changed files with 21 additions and 6 deletions

View File

@ -52,7 +52,7 @@ class EntitiesToArrayTransformer implements DataTransformerInterface
foreach ($collection as $entity) {
// identify choices by their collection key
$key = array_search($entity, $availableEntities);
$key = array_search($entity, $availableEntities, true);
$array[] = $key;
}
} else {

View File

@ -22,6 +22,9 @@ use Symfony\Component\Form\AbstractType;
class EntityType extends AbstractType
{
/**
* @var ManagerRegistry
*/
protected $registry;
public function __construct(ManagerRegistry $registry)
@ -58,11 +61,7 @@ class EntityType extends AbstractType
if (!isset($options['choice_list'])) {
$manager = $this->registry->getManager($options['em']);
if (isset($options['query_builder'])) {
$options['loader'] = new ORMQueryBuilderLoader(
$options['query_builder'],
$manager,
$options['class']
);
$options['loader'] = $this->getLoader($manager, $options);
}
$defaultOptions['choice_list'] = new EntityChoiceList(
@ -78,6 +77,22 @@ class EntityType extends AbstractType
return $defaultOptions;
}
/**
* Return the default loader object.
*
* @param ObjectManager
* @param array $options
* @return ORMQueryBuilderLoader
*/
protected function getLoader($manager, $options)
{
return new ORMQueryBuilderLoader(
$options['query_builder'],
$manager,
$options['class']
);
}
public function getParent(array $options)
{
return 'choice';