laravel - Eloquent 事件删除监听器返回 false 会停止删除功能吗?[拉拉维尔]
问题描述
我有Team
口才和TeamObserver
。TeamObserver
有deleting event
,如果我打电话TeamDeletingEvent
。TeamDeletingEvent
派遣TeamDeletingListener
。if TeamDeletingLister
will return false 是否会停止团队删除功能?
团队观察者
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 return false 不会停止删除功能。它将停止事件的连续监听器调用。但是 Eloquent 事件返回 false 将停止删除功能。(模型实例值得到更新,但这些没有在数据库中更新)。更多信息详细回答
推荐阅读
- linux - 如何使用剪切命令和文本限定符
- postgresql - 如何按一串数字排序,以点分隔
- typescript - 如何使用 npm 链接和使用 TypeScript 编写的模块进行开发?
- aws-cdk - 如何在具有超过 16 个子网的 VPC 中使用 AWS CDK 创建 ECS 服务
- google-calendar-api - 正在验证您的同意屏幕。这可能需要几天时间。您上次批准的同意屏幕仍在使用中
- javascript - 在数组中动态创建单独的对象
- react-native - React-native 自定义组件在其他组件的视图下渲染列表项
- javascript - 从谷歌表格连接到 SQL SERVER
- java - 使用java将html转换为pdf
- c# - 如何在加载栏存在时防止程序无响应