如何检测laravel模型中特定列的变化



我有一个这样的表结构:

具有属性的订阅者:id,状态

我想要一种检查列状态的方法:如果状态更改为"取消订阅",那么我想自动检测这一更改并应用。

工作流程如下:

代码中的任何位置调用$subscriber->status="取消订阅";我想发现它并用它做点什么。

感谢阅读。

我曾使用过laravel的isDirty,但它必须在每个$subscriber之后写入->status="取消订阅";所以它没有做这项工作。

将以下代码添加到您的模型中:

protected static function booted()
{
static::updated(function (Subscriber $subscriber) {
if ($subscriber->wasChanged('status')) {
// Execute your code
}
});
}

或者,您可以使用观察员。

最新更新