【发布时间】:2015-10-25 09:34:39
【问题描述】:
我目前正在构建一个通知系统,通知通过模型事件传递。一些通知取决于模型关系发生的事情。
示例:我有一个与用户有一对多关系的项目模型,
public function projectmanager() {
return $this->belongsToMany('User', 'project_managers');
}
我想在我的项目模型事件中监控这种关系的变化。目前,我正在通过以下方式做到这一点,
$dirtyAttributes = $project->getDirty();
foreach($dirtyAttributes as $attribute => $value) {
//Do something
}
这是在模型的::updating 事件中运行的,但只查看模型属性而不是任何关系数据,是否可以获取旧的关系数据和新的关系数据进行比较和处理?
【问题讨论】:
-
你找到解决办法了吗?
-
我认为这不可能。因为具有关系的数据具有不同的保存模型(在您的情况下可能有
ProjectManager模型对吗?)。虽然您可以发布您如何尝试保存Project模型吗?你是和亲戚一起保存还是单独保存? -
您始终可以在您的模特活动中get the request。我觉得这很奇怪,但它确实有效。
标签: php laravel eloquent relational-database