Lumen で Pusher を使用してイベントをクライアントにプッシュし、データを更新しようとしています。私は非常に単純なイベントを作成しました:
class CarEvent extends Event implements ShouldBroadcast{
use SerializesModels;
public $car;
private $type;
public function __construct( Car $car, $type )
{
$this->car = $car;
$this->type = $type;
}
public function broadcastOn()
{
return ['car'];
}
public function broadcastAs()
{
return $this->type;
}
}
そして、Inside Pusher コンソールを使用して、コントローラーで正常に起動しEvent::fire(new CarEvent($car,"add"));
ています。以下のイベントが発生します。
私の問題は、レコードが削除されたときにイベントを送信しようとしたときに始まります。以下は私のコードです:
public function deleteCar($id){
$car = $this->cars->findOrFail($id);
$car->delete();
$oldCar = new Car;
$oldCar->id=$id;
Event::fire(new CarEvent($oldCar,"delete"));
return Response::deleted();
}
ModelNotFoundException
指定された Id を持つモデルがもう存在しないため、これは常に提供されます。これは本当です。
私の質問は、特定の ID を持つ車が削除されたことを通知するイベントを発生させる方法です。Event を拡張し、削除のみに使用される別のクラスを作成したくありません。既存の CarEvent クラスを使用したいと考えています。
次のように Id プロパティだけで単純なオブジェクトを渡す必要があります。
Car オブジェクトを作成してId
プロパティを設定し、モデルがシリアル化されているときにデータベースからデータが取得された場合、何らかの方法で残りを無効にすることはできますか?