在Laravel 4.2中,您可以在模型中绑定观察:
public static function boot() {
parent::boot();
self::observe(new BookingObserver);
}
class BookingObserver {
public function saved($model) {
dump($model);
die("i hath save");
}
}
在您的模型上调用->save()
时会触发此事。
问题是我的模型相当复杂。在我调用save之后,我也保存了一些相关的模型。我需要访问观察者中的那些人,但事件太早了。
有没有办法延迟调用观察者方法,直到我的控制器操作完成?
答案 0 :(得分:1)
在这种情况下,您应该在控制器中要发生事情的位置触发custom event。
// in your controller
Event::fire('something.happened', array($model));
// in your app's bootstrap, perhaps
Event::listen('something.happened', function($model) {
// do your thing here
});