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

Laravel Blade中datetime-local输入框绑定$value变量不生效问题求解

问题排查方向
  • 首先验证input[type=datetime-local]的格式合法性

    HTML原生datetime-local输入框对value格式有强校验,必须严格符合YYYY-MM-DDTHH:mm的ISO 8601格式(注意日期和时间之间是大写字母T,不能是空格,不能带秒数、时区后缀),格式不匹配的情况下浏览器会直接忽略value值,不做显示。
    你可以直接在模板中输出{{ gettype($value) }}、{{ $value }}打印传入值的类型和原始字符串,确认是否符合格式要求。如果传入的是Carbon/DateTime对象,需要手动格式化后再赋值:

    <input type="datetime-local" value='{{ $value->format('Y-m-d\TH:i') }}' />
    
  • 排查参数传递异常
    你父文件调用代码中old(event_date)缺少引号,PHP会优先将event_date识别为常量,未定义的情况下才会强转为字符串,可能导致取值异常,需要修正为old('event_date')。同时确认你传入的第三个参数DateTime是合法的日期值,而非未实例化的类名。
  • 对比Form::text生效的原因
    Form::text生成的是普通文本输入框,没有浏览器内置的格式校验,只要是字符串就会正常显示,因此不受日期格式约束,这也是两种写法表现不一致的核心原因。
  • 额外验证:你可以手动写一个固定符合格式的value测试,比如<input type="datetime-local" value="2024-06-01T12:00" />,如果这个可以正常显示,就可以100%确定是你传入的$value格式不符合要求导致的问题。

内容的提问来源于stack exchange,提问作者Breezer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:18:01