使用背包 4.1 操作请求数据

Manipulate request data using backpack 4.1

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

执行此操作的最佳方法是什么?使用 Laravel7 和 Backpack 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 还是通过其他方法更新它。

参考文献: