是否有實現這個Laravel 5.3廣播使用模型創建通過推使用Laravel回聲,節能等事件
一種方式,在這個環節上記載Event of Models
我怎麼能擴展這些事件,以消防廣播推杆數據,而不是爲模型製作單獨的活動
是否有實現這個Laravel 5.3廣播使用模型創建通過推使用Laravel回聲,節能等事件
一種方式,在這個環節上記載Event of Models
我怎麼能擴展這些事件,以消防廣播推杆數據,而不是爲模型製作單獨的活動
您可以通過多種方式實現。如果你想捕捉所有的模型事件,你可以註冊一個通配符監聽器。在你App\Providers\EventServiceProvider
在引導方法註冊通配符監聽器:
public function boot()
{
parent::boot();
Event::listen('eloquent.*', function (array $data) {
broadcast(new YourModelEventListener($data));
});
}
或者,如果你想保持邏輯中分離出來的每個模型,你可以創建一個類觀察者捕獲所有的活動,並傳送給你的廣播處理器。
觀察者註冊觀察者
class MyModel extends Model
{
protected static function boot()
{
parent::boot();
static::observe(new MyModelObserver);
}
}
然後:
class MyModelObserver
{
public function broadcast($method, $model)
{
broadcast(new YourModelEventListener($method, $model));
}
public function creating($model)
{
$this->broadcast('creating', $model);
}
public function updating($model)
{
$this->broadcast('updating', $model);
}
}
public MyBroadCastEvent implements ShouldBroadcast {
public function broadcastOn() {
return ['test'];
}
}
public MyBroadCastEventListener {
public function handle(MyBroadCastEvent $event) {
// should i remove that type hint?
// then do something here
}
}
然後再調用這個?
broadcast(new MyBroadCastEventListener($ data)); ?
你能說出廣播功能廣播頻道在哪裏嗎? –
在此處查看文檔https://laravel.com/docs/master/broadcasting#broadcasting-events您可以在實現「ShouldBroadcast」接口的YourModelEventListener類的'broadcastOn()'方法中定義頻道https:/ /laravel.com/docs/master/broadcasting#defining-broadcast-events –
所以我會做一個新的事件,它具有ShouldBroadcast的接口 我在那裏做一個新的監聽器,我做了 所以這將是像包裝什麼的? 是否這樣? 模型事件 - > MyBroadCastEvent - > MyBroadCastEventListener? –