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

Laravel 11 数据播种时出现无效日期时间格式错误求助

Laravel UsersTableSeeder 报错解决指南

先排查基础配置问题

  • 确认users表中created_at、updated_at字段类型为timestamp,而非datetime或其他类型
  • 检查User模型中这两个字段是否在$fillable数组内,或者直接设置$guarded = []放开所有字段的赋值权限

优化播种器代码,避免手动维护时间戳

Laravel默认会自动处理时间戳字段,无需手动传入,修改播种器代码如下:

// UsersTableSeeder.php
public function run()
{
    // 直接使用Factory批量创建用户
    \App\Models\User::factory()->count(10)->create();

    // 若需自定义时间,使用Factory的state方法
    // \App\Models\User::factory()->count(5)->state(fn () => [
    //     'created_at' => now()->subDays(rand(1, 30)),
    //     'updated_at' => now()
    // ])->create();
}

确认模型时间戳配置正常

确保User模型未禁用自动时间戳功能:

// User.php
class User extends Model
{
    // 默认开启,若手动设为false会导致时间戳赋值报错
    public $timestamps = true;

    // 若自定义了时间戳字段名,需同步定义对应常量
    // const CREATED_AT = 'created_time';
    // const UPDATED_AT = 'updated_time';
}

清理缓存并重跑播种命令

  • 执行配置缓存清理:php artisan config:clear
  • 重新运行播种器:php artisan db:seed --class=UsersTableSeeder

查看日志定位精准错误

打开storage/logs/laravel.log查看完整报错信息,重点关注:

  • 是否存在字段未在$fillable中导致的赋值拦截
  • 时间格式是否与数据库要求不匹配
  • 是否有外键约束或关联模型的异常问题

内容的提问来源于stack exchange,提问作者Takunda Geraldino Chibanda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 07:00:08