Я не могу получить ни одного из моих обработчиков событий eloquent.saved
.События в Ларавеле не стреляют?
Я попытался это:
<?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
сохранен.