laravel7 数据迁移及填充数据
1:置迁移数据表,创建生成模型和迁移文件:
php artisan make:model Article -m
2:接着,在框架中的database/migrations文件夹中找到刚创建的用户表Article
3:打开插入代码:
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateArticlesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('articles', function (Blueprint $table) { $table->id(); $table->string('name','100')->comment('文章标题'); $table->text('content')->comment('文章内容'); $table->string('author')->comment('文章作者'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('articles'); } }
4:然后此时执行迁移文件:
php artisan migrate
5:查库看表:
6:最后,我们开始使用Faker填充数据,创建用户的填充文件
php artisan make:seeder ArticleSeeder
7:
此时,我们需要在articles模型层中使用 protected $guarded = [];不然,会无法填充数据
<?php namespace App\models; use Illuminate\Database\Eloquent\Model; class Article extends Model { // protected $guarded = []; }
8:接着,我们生成一个数据工厂
php artisan make:factory ArticleFactory -m Models/Article
9:在ArticleFactory .php文件中修改填充文件的数据
<?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\models\Article; use Faker\Generator as Faker; $factory->define(Article::class, function (Faker $faker) { return [ // 'password' => bcrypt('admin'), 'name' => $this->faker->name, 'content'=>$this->faker->name, 'author' => $this->faker->name, //password_hash('admin666') // 'email' => $this->faker->unique()->safeEmail, // 'phone' => $this->faker->unique()->phoneNumber, ]; });
10:在ArticleSeeder.php文件中:
<?php use Illuminate\Database\Seeder; use App\models\Article; class ArticleSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { //重置表数据 Article::truncate(); //生成100条数据 factory(Article::class,100)->create(); //修改id=1用户 Article::where('id', 1)->update(['name' => 'admin']); } }
11最后在DatabaseSeeder.php中修改总调用
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { $this->call([ ArticleSeeder::class ]); } }
12,终端执行命令
php artisan db:seed
13:查库看表数据:
14,数据填充为中文,修改config\app.php
'faker_locale' => 'zh_CN',
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现