Laravel中如何使用数据填充Seeder_Laravel填充初始数据操作步骤【教程】
发布时间 - 2026-01-28 00:00:00 点击率:次必须手动在DatabaseSeeder的run()方法中调用$this->call(UserSeeder::class)才能执行UserSeeder;推荐用Eloquent Factory生成数据,需显式定义非空字段,可用--class参数指定单个Seeder运行。
直接用 php artisan db:seed 跑不起来,大概率是没跑过 php artisan migrate,或者 DatabaseSeeder 里没调用你写的 Seeder 类。
如何创建并注册一个 Seeder 类
Laravel 不会自动发现新写的 Seeder,必须手动注册到 DatabaseSeeder 的 run() 方法里。否则 db:seed 命令只会执行空逻辑。
- 运行
php artisan make:seeder UserSeeder生成类文件,位于database/seeders/UserSeeder.php - 编辑
database/seeders/DatabaseSeeder.php,在run()方法中加入:$this->call(UserSeeder::class);
- 确保
UserSe类的
eder
run()方法里有实际操作,比如User::factory()->count(10)->create();
使用工厂(Factory)还是手动 new Model?
推荐优先用 Eloquent Factory,它能自动处理字段约束、关联关系和随机数据生成;手动 new User 容易漏掉非空字段或触发模型事件异常。
- 工厂需配合
php artisan make:factory UserFactory --model=User创建 - 若数据库字段有
NOT NULL但工厂没定义,默认值为null,会导致插入失败,错误信息类似:SQLSTATE[HY000]: General error: 1364 Field 'email' doesn't have a default value
- 工厂中可显式覆盖字段:
return [ 'name' => $this->faker->name, 'email' => $this->faker->unique()->safeEmail, ];
只运行某个 Seeder 而不是全部
避免每次重跑全部填充数据,尤其是开发中反复调试单个表时。
- 用
--class参数指定类名:php artisan db:seed --class=UserSeeder
- 类名必须带完整命名空间,如果项目启用了自定义命名空间(如
Database\Seeders),要写全:php artisan db:seed --class=Database\\Seeders\\UserSeeder
- 注意 Windows 命令行中反斜杠要双写,Linux/macOS 可用单斜杠或引号包裹
Seeder 执行没有事务包装(除非你自己加),一旦中途出错,可能留下脏数据;线上环境严禁直接运行 db:seed,本地开发也建议先用 --dry-run 模拟(Laravel 10+ 支持)或先备份数据库。
# php
# linux
# laravel
# windows
# mac
# ai
# macos
# win
# cos
# NULL
# count
# 命名空间
# class
# 事件
# this
# database
# 数据库
# 尤其是
# 你自己
# 只会
# 线上
# 自定义
# 它能
# 错误信息
# 先用
# 跑过
# 命令行
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在IIS7上新建站点并设置安全权限?
Linux系统运维自动化项目教程_Ansible批量管理实战
bootstrap日历插件datetimepicker使用方法
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
敲碗10年!Mac系列传将迎来「触控与联网」双革新
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Firefox Developer Edition开发者版本入口
如何在景安云服务器上绑定域名并配置虚拟主机?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
新三国志曹操传主线渭水交兵攻略
如何在云主机快速搭建网站站点?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何实现建站之星域名转发设置?
如何在搬瓦工VPS快速搭建网站?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
如何在建站主机中优化服务器配置?
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
JS实现鼠标移上去显示图片或微信二维码
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
北京专业网站制作设计师招聘,北京白云观官方网站?
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
如何为不同团队 ID 动态生成多个“认领值班”按钮
如何获取免费开源的自助建站系统源码?
如何在企业微信快速生成手机电脑官网?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
Laravel如何实现用户密码重置功能?(完整流程代码)
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
南京网站制作费用,南京远驱官方网站?
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
Laravel如何自定义分页视图?(Pagination示例)
Laravel如何使用查询构建器?(Query Builder高级用法)
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
黑客入侵网站服务器的常见手法有哪些?
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
Python文件异常处理策略_健壮性说明【指导】
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
如何正确下载安装西数主机建站助手?


