如何为Filament PHP v2 DateTimePicker字段设置默认日期时间值?
Filament DateTimePicker 设置当前时间为默认值的解决方案
基础创建表单场景
直接在字段代码里添加->default(CarbonImmutable::now())即可,注意提前引入CarbonImmutable类。修改后的完整代码如下:
use Carbon\CarbonImmutable; DateTimePicker::make('my_date') ->label('My date') ->minDate(CarbonImmutable::now()->startOfDay()) ->withoutSeconds() ->default(CarbonImmutable::now()) // 新增默认值设置 ->required(),
编辑表单场景(字段为空时补默认)
如果是在编辑页面,仅当数据库中该字段为空时需要设置默认值,用闭包判断记录的字段值即可:
DateTimePicker::make('my_date') ->label('My date') ->minDate(CarbonImmutable::now()->startOfDay()) ->withoutSeconds() ->default(fn ($record) => $record?->my_date ?? CarbonImmutable::now()) ->required(),
之前->default()无效的常见原因
- 你在编辑页面使用:编辑页面会优先加载模型中已有的数据,默认值不会覆盖已有内容
- 未正确引入Carbon类:如果类不存在,代码会静默失败(或报错),导致默认值不生效
内容的提问来源于stack exchange,提问作者Zsófia Komáromi
相关产品推荐
相关产品推荐

