Laravel Eloquent:获取某字段修改前的值
在Laravel中,如果你想获取模型在更新操作之前某字段的旧值,可以使用模型的updating
事件或监听器,并结合getOriginal
方法。
首先,你需要设置一个监听器来监听模型更新事件。这通常在一个服务提供者中完成,比如AppServiceProvider
或创建一个单独的监听器类。
// AppServiceProvider.php
public function boot()
{
YourModel::updating(function ($model) {
$originalFieldValue = $model->getOriginal('field_name');
// 你可以在这里使用$originalFieldValue做你需要的操作
});
}
在上面的代码中,YourModel
是你想要监听的模型名称,field_name
是你想要获取旧值的字段名。
如果你想在控制器内部获取旧值,可以在更新操作之前使用getOriginal
方法。
public function update(Request $request, $id)
{
$model = YourModel::find($id);
$oldValue = $model->getOriginal('field_name');
// 更新操作...
$model->update($request->all());
// 使用$oldValue做其他操作
}
在这个例子中,$oldValue
将是在更新操作执行之前,字段field_name
的原始值。
评论已关闭