1
我似乎無法讓我的任何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
何時已經保存。