Php FOSUserBundle事件注册\未触发初始化

Php FOSUserBundle事件注册\未触发初始化,php,symfony,fosuserbundle,Php,Symfony,Fosuserbundle,我想在注册表单时自动设置密码。所以我使用注册\初始化来触发事件。不幸的是,它不起作用 听众: <?php namespace Acme\UserBundle\EventListener; use Doctrine\ORM\EntityManager; use FOS\UserBundle\Event\UserEvent; use FOS\UserBundle\FOSUserEvents; use Symfony\Component\EventDispatcher\EventSubscr

我想在注册表单时自动设置密码。所以我使用注册\初始化来触发事件。不幸的是,它不起作用

听众:

<?php

namespace Acme\UserBundle\EventListener;

use Doctrine\ORM\EntityManager;
use FOS\UserBundle\Event\UserEvent;
use FOS\UserBundle\FOSUserEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class RegistrationListener implements EventSubscriberInterface
{
    /**
     * @var EntityManager
     */
    private $em;
/**
 * @param \Doctrine\ORM\EntityManager $entityManager
 */
public function __construct(EntityManager $entityManager)
{
    $this->em = $entityManager;
}

/**
 * {@inheritdoc}
 */
public static function getSubscribedEvents()
{
    return array(
        FOSUserEvents::REGISTRATION_INITIALIZE => 'onRegistrationInit',
    );
}

public function onRegistrationInit(UserEvent $userEvent)
{
    $user = $userEvent->getUser();

    $user->setPassword('abcdeffffff');

}
因此,密码未设置,显示密码不应为空

我做错了什么?任何帮助

编辑:

问题是我在错误的地方定义了服务

它应该是
app/config/services.yml
,而不是
src/Acme/UserBundle/Resources/config/services.yml


我在中看到了
src/Acme/UserBundle/Resources/config/services.yml,但不适合我

也许我错了,但我认为您的服务定义使用了,但您正在使用,例如

版本3.3中的新增功能:Symfony 3.3中添加了按参数名称($adminEmail)配置参数的功能。以前,您只能通过其索引(本例中为2)或使用其他参数的空引号对其进行配置

尝试将服务定义更新为:

#src/Acme/UserBundle/Resources/config/services.yml
services:
    acme_user.registration:
        class: Acme\UserBundle\EventListener\RegistrationListener
        arguments: ["@doctrine.orm.entity_manager"]
        tags:
            - { name: kernel.event_subscriber}

还有一句话:当您实际使用订户时,您应该将类
RegistrationListener
重命名为
RegistrationSubscriber

您使用的是当前的symfony 3.3版本吗?@Lordrodos nope我使用的是3.2.8
#src/Acme/UserBundle/Resources/config/services.yml
services:
    acme_user.registration:
        class: Acme\UserBundle\EventListener\RegistrationListener
        arguments: ["@doctrine.orm.entity_manager"]
        tags:
            - { name: kernel.event_subscriber}