Eloquent 事件删除监听器 return false 会停止删除功能吗? [laravel]
Eloquent event deleting listener return false will stop delete function? [laravel]
我有 Team
eloquent 和 TeamObserver
。 TeamObserver
有 deleting event
,如果我调用 TeamDeletingEvent
。 TeamDeletingEvent
派遣TeamDeletingListener
。如果TeamDeletingLister
会returnfalse会停止团队删除功能吗?
TeamObserver
class TeamObserver
{
/**
* Handle the team "deleting" event.
*
* @param Team $team
* @return void
*/
public function deleting(Team $team)
{
event(new TeamDeletingEvent($team));
}
}
团队删除事件
class TeamDeletingEvent
{
use SerializesModels;
/**
* @var Team
*/
public $team;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(Team $team)
{
$this->team = $team;
}
}
TeamDeletingListener
class TeamDeletingListener
{
/**
* Handle the event.
*
* @param TeamDeletingEvent $event
* @return bool
*/
public function handle(TeamDeletingEvent $event)
{
$teamUser = Team::where('id', $event->team->id)->users()->first();
if(is_null($teamUser)){
return true;
}
return false;
}
}
超过 TeamObserver
注册于 AppServiceProvider
和 Event and Listener
注册于 EventServiceProvider
listener returnfalse 不会停止删除功能。它将停止事件的连续侦听器调用。但是 Eloquent 事件 returning false 将停止删除功能。 (模型实例值得到更新,但这些值未在数据库中更新)。更多信息
我有 Team
eloquent 和 TeamObserver
。 TeamObserver
有 deleting event
,如果我调用 TeamDeletingEvent
。 TeamDeletingEvent
派遣TeamDeletingListener
。如果TeamDeletingLister
会returnfalse会停止团队删除功能吗?
TeamObserver
class TeamObserver
{
/**
* Handle the team "deleting" event.
*
* @param Team $team
* @return void
*/
public function deleting(Team $team)
{
event(new TeamDeletingEvent($team));
}
}
团队删除事件
class TeamDeletingEvent
{
use SerializesModels;
/**
* @var Team
*/
public $team;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(Team $team)
{
$this->team = $team;
}
}
TeamDeletingListener
class TeamDeletingListener
{
/**
* Handle the event.
*
* @param TeamDeletingEvent $event
* @return bool
*/
public function handle(TeamDeletingEvent $event)
{
$teamUser = Team::where('id', $event->team->id)->users()->first();
if(is_null($teamUser)){
return true;
}
return false;
}
}
超过 TeamObserver
注册于 AppServiceProvider
和 Event and Listener
注册于 EventServiceProvider
listener returnfalse 不会停止删除功能。它将停止事件的连续侦听器调用。但是 Eloquent 事件 returning false 将停止删除功能。 (模型实例值得到更新,但这些值未在数据库中更新)。更多信息