使用背包4.1处理请求数据

问题描述 投票:0回答:1

我想在保存之前更改数据,但是我有一个日期,我不需要分钟只有几分钟,而我希望秒始终都是00。我在请求类中尝试了Laravel的prepareForValidation()方法,但事实证明它不会影响存储在数据库中的值。我也尝试过背包的modifyField(),但是在存储或更新之前找不到修改值的方法。

执行此操作的最佳方法是什么?使用Laravel7和背包4.1

php laravel backpack-for-laravel
1个回答
0
投票

我不知道是否有特定的背包方法可以执行此操作,但是您可以在模型上使用变量器来修改值,然后再将其保存到数据库中。

在您的情况下,如果您的字段名称是“ date_time”,则可以执行以下操作:

class MyModel extends Model {

  setDateTimeAttribute ($value) {

    $value = Carbon::parse($value)->second(0);

    $this->attributes['date_time'] = $value;  
  }
}

这具有每次您更新date_time属性时都会发生突变的优势-无论是通过Backpack Crud还是通过其他方法进行更新。

参考

© www.soinside.com 2019 - 2024. All rights reserved.