Symfony - Inject Entity Manager en EventSubscriber de formulario
Esta es la primera vez que estoy trabajando con EventListener de un formulario, así que estoy luchando sobre cómo inyectar EntityManager en él.
Tengo este formType llamadoUserType
y en esta clase tengo un EventSubscriberAddDepartmentDegreeCourseFieldSubscriber
que necesita acceso a EntityManager
class UserType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->addEventSubscriber(new AddProfileFieldSubscriber());
$builder->addEventSubscriber(new AddDepartmentDegreeCourseFieldSubscriber());
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'AppBundle\Entity\User'
));
}
}
Este es miservices.yml
app.department_course_degree_subscriber:
class: AppBundle\Form\EventListener\AddDepartmentDegreeCourseFieldSubscriber
arguments: ["@doctrine.orm.entity_manager"]
tags:
- { name: kernel.event_subscriber }
El error que obtengo es el siguiente
Error grave detectable: el argumento 1 se pasó a AppBundle \ Form \ EventListener \ AddDepartmentDegreeCourseFieldSubscriber :: __ construct () debe ser una instancia de Doctrine \ ORM \ EntityManager, ninguno proporcionado, llamado / Users / shairyar / Sites / oxford-portal / src / AppBundle /Form/UserType.php en la línea 21 y definido
Sé lo que significa el error, pero pensé que el servicio en el que me registréservices.yml
debe inyectar elEntityManager
Entonces, ¿por qué recibo este error? que me estoy perdiendo aqui? Cualquier ayuda será muy apreciada.