を聴きながら:無限ループ私がやるのは、私のコードのどこかに言わせて、私は、プロパティのためLaravelアプリケーションを持っているモデルイベント
$property = new Property();
$property->city = "New York";
...
$property->save();
その後、私はイベントリスナを持っている特定のイベントをリッスンしている:
$events->listen(
'eloquent.saved: Properties\\Models\\Property',
'Google\Listeners\[email protected]'
);
そして最後にSetGeoLocationInfo.php
に私は
public function fire($event)
{
$property = $event;
...
//get GPS data from Google Maps
$property->latitude = $googleMapsObject->latitude;
$property->longitude = $googleMapsObject->longitude;
$property->save();
}
を持っていると私はモデルを保存するときでに行きますハンドラで呼び出されたsave()
のために有限再帰が発生しました。
保存して再帰を避けるためにコードを変更して場所データを一度に埋め込むことができますか?
この場合、他のリスナーが機能しなくなる(プロパティ写真付きなど)ため、flushEventListeners()
は使用できません。
、保存、代わりの – Farkie
を保存するだけのプロパティでsaveメソッドオーバーライドするUSE「
eloquent.{$event}: {$name}
」などと命名されている - モードを保存するための引数を渡します。次のようなfire():$ property-> save(Property :: SAVE_FROM_GOOGLE_FIRE);他の何かのためにもっと。 – Deep