9

新しいユーザーがサインアップしたときに通知を受け取りたい。私のコントローラーでは、次のようにイベントを発生させます。

Event::fire('myapp.new_user', array($this->data['user']->email));

をどこで定義しlistenerますか?

Event::listen('myapp.new_user', function ($uid) {
    Message::to("myemail@example.com")
                ->from("myemail@example.com", "My App")
                ->subject('New User')
                ->body("new user")
                ->html(true)
                ->send();
});

イベントが発生したことをどのようにlistener知るのですか?

4

3 に答える 3

26

アプリケーション ロジックを実行する前に、リスナーが定義されていることを確認する必要があります。イベントがスローされた場合、既に登録されているリスナーによってのみキャッチされ、新しいリスナーは検索されません。

小さなプロジェクトでは、リスナーをapplication/start.phpファイルの最後に配置するだけです。このファイルは、ルートが実行される前に発生し、何らかのロジックを備えた一種のアプリケーション構成ファイルとして機能します。少なくともオートローダー マッピングが登録された後、これらのイベントをファイルの末尾に配置する必要があります。

大規模なプロジェクトでは、読みやすくするためapplication/listeners.phpに、このファイルを内部に作成して要求します。application/start.php

お役に立てれば!

于 2012-11-13T23:56:50.147 に答える
2

試す :

Event::listen('myapp.new_user', function ($uid) {
Message::to("myemail@example.com")
            ->from("myemail@example.com", "My App")
            ->subject('New User')
            ->body("new user")
            ->html(true)
            ->send();
return 'test my event';
});

http://laravel.com/docs/events

于 2013-08-26T00:45:38.263 に答える