eloquent.saved
イベントハンドラを実行することができません。Laravelのイベントは起動しませんか?
私はこの試みた:
<?php
namespace App\Providers;
use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
protected $listen = [
'eloquent.saved: \App\Models\Company' => [
'\App\Models\[email protected]',
],
];
}
をそして\App\Models\Company
に、このメソッドを追加しました:
public function hasSaved() {
die("SAVED!!!");
}
しかし、私は会社を保存するとき、それは実行されません。
私はオブザーバーを作成してみました:
<?php
namespace App\Providers;
use App\Models\Company;
use App\Observers\CompanyObserver;
use DB;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
Company::observe(CompanyObserver::class);
}
}
しかし、イベントは決して火災:
<?php namespace App\Observers;
class CompanyObserver {
public function saved() {
die('saved');
}
public function saving() {
die('saving');
}
}
私が代わりにEventServiceProvider
にリスナークラスを使用してみました:
protected $listen = [
'eloquent.saved: \App\Models\Company' => [
\App\Listeners\CompanySavedListener::class,
],
];
しかし、またそれを決して走りません。
最後には、私はEventServiceProvider
public function boot(DispatcherContract $events)
{
parent::boot($events);
$events->listen('eloquent.*', function() {
dump(func_get_args());
});
}
にこれを追加しようと、それは、ランダムなイベントの束を発射し、それはちょうど私のモデルのインスタンスを供給しています - 私は実際に発射されているどのようなイベントは考えています。
何が起こっているのですか?私はいつCompany
が保存されたか知りたいです。