我想在保存之前更改数据,但是我有一个日期,我不需要分钟只有几分钟,而我希望秒始终都是00。我在请求类中尝试了Laravel的prepareForValidation()
方法,但事实证明它不会影响存储在数据库中的值。我也尝试过背包的modifyField()
,但是在存储或更新之前找不到修改值的方法。
执行此操作的最佳方法是什么?使用Laravel7和背包4.1
我不知道是否有特定的背包方法可以执行此操作,但是您可以在模型上使用变量器来修改值,然后再将其保存到数据库中。
在您的情况下,如果您的字段名称是“ date_time”,则可以执行以下操作:
class MyModel extends Model {
setDateTimeAttribute ($value) {
$value = Carbon::parse($value)->second(0);
$this->attributes['date_time'] = $value;
}
}
这具有每次您更新date_time属性时都会发生突变的优势-无论是通过Backpack Crud还是通过其他方法进行更新。
参考: