誰かが自分のシステム上のエンティティをお気に入りにしたときに私が発するイベントがあります。これはEvent::fire(new AddedAsFav($entity_id));
を使用して発生します。クラスインスタンスではないイベントに変数を渡すにはどうすればよいですか?
その場合、私はそのことに関するいくつかの情報を引き出したいと思います$entity_id
。これを行うには、$entity_id
をリスナーのコンストラクタの一部として渡す必要があると思ってアクセスします。残念ながら、コンストラクタは型を予期しており、整数だけを渡すことはできません。ドキュメントには、Eloquent ORMインスタンスが渡される例がたくさんあります。ORMインスタンスの接頭辞には、クラス名(たとえば、Entity $entity
)が付いています。しかし、私は完全なオブジェクト、IDだけを渡すことはしません。それは、それが出てくるコントローラーがIDしか持っていないからです。私はむしろ、イベント自体の中でクエリ(これは高価で時間がかかるため、イベント)を行うでしょう。
基本的なintを渡してアクセスするにはどうすればよいですか?
ここに私のリスナーです:
<?php
namespace App\Listeners;
use App\Events\AddedAsFav;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
class GetFullEntity
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct(int $entity_id)
{
$this->entity_id = $entity_id;
}
/**
* Handle the event.
*
* @param MovieAddedAsToWatch $event
* @return void
*/
public function handle(AddedAsFav $event)
{
dd($event);
}
}