Laravel Form::date提交返回null且日期值异常问题求助
问题解决方法
1. 提交时birth_date返回null的原因及修复
- 你在
Form::date的参数里添加的'format' => 'Y-m-d'是无效的——HTML5原生的type="date"输入框不支持这个自定义属性,Laravel Collective的Form组件也不会识别该参数处理值,反而可能干扰字段值的绑定逻辑,导致提交后无法正确获取数据。直接去掉这个多余的format参数即可。 - 同时检查两个关键点:
- 控制器中是否正确接收字段:比如用
$request->input('birth_date')获取,避免字段名拼写错误 - 如果使用Eloquent模型填充数据,确保模型的
$fillable数组包含birth_date字段,否则模型无法自动为该字段赋值
- 控制器中是否正确接收字段:比如用
修正后的代码:
{{ Form::date('birth_date', null, ['class' => 'form-control']) }}
2. 日期显示变为mm/dd/yyyy的问题
这是HTML5日期输入框的正常行为:它的显示格式会跟随用户的操作系统区域设置(比如英文系统默认显示MM/DD/YYYY,中文系统显示YYYY-MM-DD),但实际提交到服务器的value始终是标准的YYYY-MM-DD格式。你看到的只是浏览器的展示效果,并非实际提交的数据。
如果需要强制统一显示格式,HTML5原生日期输入无法实现,建议改用普通文本输入框配合第三方日期选择器(如Flatpickr、jQuery Datepicker)来控制显示和提交格式。
内容的提问来源于stack exchange,提问作者Gabriel Rogath
相关产品推荐
相关产品推荐

