July 26, 2012

Form builder — entity field: «Class BundleAliasName:EntityClassName does not exist «

После обновления symfony-2.1 до версии из транка (symfony-2.1.0-beta4) отвалилась форма, в которой я использовал поле типа entity, где в качестве класса сущности указал не полный путь к классу, а через bundle alias:

$builder
            ->add(
            'field_name,
            'entity',
            array(
                 'class' => 'BundleAliasName:EntityClassName',
                 'multiple' => true
            )
        )
.....

Код выбрасывал исключение с сообщением

«Class BundleAliasName:EntityClassName does not exist»

Если прописать полный путь через пространство имен:

array(
    'class' => 'Full\Bundle\Path\Entity\EntityClassName',
)

то все работало хорошо.

Я открыл по этому поводу тикет и оказалось, что дело в версии Doctrine! Обновление до 2.3 решило проблему!

Огромное спасибо автору комментария на гитхабе Christophe Coevoet!