php - 使用背包 4.1 操作请求数据
问题描述
我想在保存之前更改数据我有一个不需要秒数的日期,我希望秒数一直为 00。我在请求类中尝试了 Laravel 的prepareForValidation()
方法,但结果证明它不会影响存储在数据库中的值。我也尝试过背包modifyField()
,但我找不到在存储或更新之前修改价值的方法。
执行此操作的最佳方法是什么?使用 Laravel7 和 Backpack 4.1
解决方案
我不知道是否有一种特定的背包方式可以做到这一点,但是您可以在模型上使用 mutator 来修改值,然后再将其保存到数据库中。
在您的情况下,如果您的字段名是“date_time”,您可以执行以下操作:
class MyModel extends Model {
setDateTimeAttribute ($value) {
$value = Carbon::parse($value)->second(0);
$this->attributes['date_time'] = $value;
}
}
这样做的好处是,每次更新 date_time 属性时都会发生突变 - 无论您是通过 Backpack Crud 还是通过其他方法更新它。
参考资料:
- Laravel 突变体: https ://laravel.com/docs/7.x/eloquent-mutators#defining-a-mutator
- 使用 Carbon 修改日期:https ://carbon.nesbot.com/docs/#api-settersfluent
推荐阅读
- javascript - Vue中的目标点击元素
- javascript - FileReader 结果返回 null
- c# - 如何从 WebMethod 读取 List 到 AJAX 回调
- java - 如何从 spring-boot 千分尺中检索指标
- c - 当条件为假时,为什么条件包含中的控制组在词汇上是有效的?
- asp.net-core-2.1 - Entity Framework Core 相关数据查询太慢
- python - 使用其他链接器选项编译 PyTorch
- javascript - 将 javascript 日期格式从 yyyy.mm.dd 转换为 dd.mm.yyyy
- ibm-midrange - 图书馆列出并提交作业——AS400
- php - 检查时间字符串是否超出小时数