2017-09-23 21 views
2

記事を作成すると通知が表示される新しいアプリケーションを作成しています。私はイベントとリスナーを使ってみました。

マイApp\Article.php

... 

protected $events = [ 

    'created' => Events\ArticleWasPublished::class 

]; 

... 

マイApp\Providers\EventServiceProvider.php

protected $listen = [ 
    'App\Events\ArticleWasPublished' => [ 
     'App\Listeners\NotifyUsers', 
    ], 
]; 

マイApp\Events\ArticleWasPublished.php

... 

use App\Article; 

... 

{ 

    public $article; 

    public function __construct(Article $article) 
    { 
     $this->article = $article; 
    } 

... 

マイApp\Listeners\NotifyUsers.php

use App\Notification; 

... 

public function handle(ArticleWasPublished $event) 
{ 
    Notification::create([ 
     'article_id' => $event->article->id, 
     'message' => 'A new Article was created' 
    ]); 
    var_dump('Something'); 
} 

私はここで間違っていますか?

私の問題は、新しい記事が作成され、新しい通知が作成されない場合です。私はどんな誤りも得ていない。

答えて

2

Laravel 5.5では、$ dispatchesEventsという名前のプロパティがありますが、$ eventsではありません。このバージョンを使用していますか?

https://laravel.com/docs/5.5/eloquent#events

古いバージョンから移行する場合、それはあなたがする必要があるの変更のいずれかです。

モデル$イベントプロパティ

お使いのモデルの$イベントプロパティをすべきです $ dispatchesEventsに名前を変更します。この変更は、 という多数のユーザーがイベント関係を定義する必要があり、古いプロパティ名との間で の競合が発生したために行われました。

+0

はい、私はLaravel 5.5を使用しています。答えてくれてありがとう。それは私を助けた:)。私はlaravelイベントのドキュメンテーションでこのメソッドを探していましたが、見つけられませんでした。手動で聞くしか方法はありませんでした。 – Advaith

関連する問題