使用背包 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 还是通过其他方法更新它。
参考文献:
我想在保存前更改数据我有一个日期,我不需要秒,只需要分钟,我希望秒始终为 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 还是通过其他方法更新它。
参考文献: