You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中使用Carbon无法从对象获取正确日期属性问题

解决预约冲突检查中的日期时间丢失问题

针对你遇到的问题,这里有几个可行的排查和解决步骤:

  • 清除Laravel配置缓存
    模型的$casts配置修改后可能被Laravel的配置缓存保留,执行以下命令强制加载最新配置:

    php artisan config:clear
    php artisan cache:clear
    php artisan optimize:clear
    
  • 检查模型的$dates属性
    若模型中同时定义了$dates属性,比如:

    protected $dates = ['date_start', 'date_end'];
    

    该属性优先级高于$casts,如果之前此处配置为默认date解析,会覆盖你设置的datetime格式。需将$dates中对应字段移除,或确保其与$casts配置一致。

  • 确认日期字段的传入值
    检查实例化模型时,date_start和date_end是否被正确传入带时间部分的字符串。比如从请求获取时,要用Carbon::parse()完整解析:

    $model->date_start = Carbon::parse($request->input('date_start'));
    $model->date_end = Carbon::parse($request->input('date_end'));
    
  • 排查实例字段的修改逻辑
    检查调用getConflicting()方法前,是否有其他代码(如全局作用域、模型观察者、自定义方法)意外修改了$this->date_start或$this->date_end,导致时间部分丢失。

内容的提问来源于stack exchange,提问作者Hugo Perdigão

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 07:22:07