1

EasyAdminBundle は、FOSUserBundle ユーザー マニピュレーターを使用してユーザーを作成および管理します。postfix データベースを更新するためにユーザーを作成するときに使用するパスワードを取得したいと考えています。ユーザーが作成されると、dev プロファイラーは FOSUserBundle イベントがリッスンされたことを示しません。EasyAdminBundle イベントはeasy_admin.post_initialize. EasyAdminEventsクラスが示しています

/** @Event("Symfony\Component\EventDispatcher\GenericEvent") */
const POST_INITIALIZE = 'easy_admin.post_initialize';

ただし、イベントリスナーには次のものがあります。

use Symfony\Component\EventDispatcher\GenericEvent;
...
    public static function getSubscribedEvents()
    {
        return array(
            GenericEvent::POST_INITIALIZE => 'onPostInitialize',
        );
    }

スロー:

致命的なエラー: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: 未定義のクラス定数 'POST_INITIALIZE' ...

答えはJavierEguiluz\Bundle\EasyAdminBundle\Event\EasyAdminEvents、 Symfony ではなくイベントを使用することだと思いましたGenericEvent。のように

use JavierEguiluz\Bundle\EasyAdminBundle\Event\EasyAdminEvents;
...
    public static function getSubscribedEvents()
    {
        return array(
            EasyAdminEvents::POST_INITIALIZE => 'onPostInitialize',
        );
    }
...
//error occurs on the following line:
    public function onPostInitialize(EasyAdminEvents $event)
    {
        ...
    }

ただし、そうすると、次の Catch 22 が得られました。

JavierEguiluz\Bundle\EasyAdminBundle\Event\EasyAdminEvents のインスタンス、指定された Symfony\Component\EventDispatcher\GenericEvent のインスタンスでなければなりません"

4

1 に答える 1

0

したがって、最も簡単な答えは、型ヒントを次のように変更することでした。

    public function onPostInitialize(GenericEvent $event)
    {
        ...
    }
于 2016-11-05T14:50:30.343 に答える