diff --git a/Form/ChoiceList/PropelChoiceLoader.php b/Form/ChoiceList/PropelChoiceLoader.php index 77c3294..3c8aef8 100644 --- a/Form/ChoiceList/PropelChoiceLoader.php +++ b/Form/ChoiceList/PropelChoiceLoader.php @@ -109,7 +109,8 @@ class PropelChoiceLoader implements ChoiceLoaderInterface // Optimize performance in case we have a single-field identifier if (!$this->choiceList && $this->identifierAsIndex && current($this->identifier) instanceof ColumnMap) { $phpName = current($this->identifier)->getPhpName(); - $unorderedObjects = $this->query->filterBy($phpName, $values); + $query = clone $this->query; + $unorderedObjects = $query->filterBy($phpName, $values, \Criteria::IN)->find(); $objectsById = array(); $objects = array(); @@ -203,7 +204,7 @@ class PropelChoiceLoader implements ChoiceLoaderInterface if ($model instanceof \BaseObject) { return array($model->getPrimaryKey()); } - + return $model->getPrimaryKeys(); } diff --git a/Form/Type/ModelType.php b/Form/Type/ModelType.php index b964232..b88cbd3 100644 --- a/Form/Type/ModelType.php +++ b/Form/Type/ModelType.php @@ -211,7 +211,6 @@ class ModelType extends AbstractType $valueProperty = $options['property']; /** @var ModelCriteria $query */ $query = $options['query']; -//var_dump($query->getTableMap()); $getter = 'get' . ucfirst($query->getTableMap()->getColumn($valueProperty)->getPhpName()); $choiceLabel = function($choice) use ($getter) { @@ -240,7 +239,7 @@ class ModelType extends AbstractType $resolver->setRequired(array('class')); $resolver->setNormalizer('query', $queryNormalizer); $resolver->setNormalizer('choice_label', $choiceLabelNormalizer); - $resolver->setAllowedTypes('query', ['null', 'Propel\Runtime\ActiveQuery\ModelCriteria']); + $resolver->setAllowedTypes('query', ['null', '\ModelCriteria']); } /**