使用 seed 命令创建模拟数据(学习笔记)

栏目: 数据库 · 发布时间: 5年前

内容简介:1.1打开新创建的laravel项目 database/migrations目录 下可以发现 两个文件1.2我们可以打开这个文件瞧瞧 (根据实际情况修改,这里我就不修改了)

在开发环境中,我们经常会使用 “模拟数据” 来测试我们应用,在 laravel 中 提供了 ”数据填充“来帮助我们实现这个需求。我们现在就来用这个功能来创建 20个用户...

1.使用 artisan 命令生成 用户表

1.1打开新创建的laravel项目 database/migrations目录 下可以发现 两个文件 一个是创建用户表的,一个是创建确认密码表的(图中没看到是因为我删除了)

使用 seed 命令创建模拟数据(学习笔记)

1.2我们可以打开这个文件瞧瞧 (根据实际情况修改,这里我就不修改了)

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

1.3 执行 artisan 命令 生成表

php artisan migrate

于是生成了 users 表

使用 seed 命令创建模拟数据(学习笔记)

2. 生成seed文件,并且修改

2.1 使用 artisan 命令生成 UsersTableSeeder.php 文件

php artisan make:seed UsersTableSeeder

命令执行后,我们可以在 database/seeds 目录下发现多了个我们创建的UsersTableSeeder.php文件

使用 seed 命令创建模拟数据(学习笔记)

我们打开这个文件:

<?php

use Illuminate\Database\Seeder;

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
    
    }
}

接着我们修改一下这个文件(创建20个用户):

<?php

use Illuminate\Database\Seeder;

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
    //使用 factory 来创建模拟数据
        factory(\App\User::class,20)->create();
    }
}

同目录下还有个 DatabaseSeeder.php 文件,我们需要 让这个文件 执行 我们这个新创建的UsersTableSeeder.php文件,所以需要把 run方法中的 $this->call(UsersTableSeeder::class) 的注释取消掉

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
         $this->call(UsersTableSeeder::class);
    }
}

3. 填充数据

3.1 database/factories 目录下有 个 UserFactory.php 文件,修改为(根据实际情况):

<?php

/** @var \Illuminate\Database\Eloquent\Factory $factory */
use App\User;
use Illuminate\Support\Str;
use Faker\Generator as Faker;

/*
|--------------------------------------------------------------------------
| Model Factories
|--------------------------------------------------------------------------
|
| This directory should contain each of the model factory definitions for
| your application. Factories provide a convenient way to generate new
| model instances for testing / seeding your application's database.
|
*/

$factory->define(User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'email_verified_at' => now(),
        'password' => bcrypt('123456'), // password
        'remember_token' => Str::random(10),
    ];
});

3.2 生成模拟数据,执行以下 artisan 命令:

php artisan db:seed

打开 users 表可以发现新创建了20条用户数据:

使用 seed 命令创建模拟数据(学习笔记)

4.总结

这样就可以生成模拟数据啦,是不是很简单呢~~~ 如果有帮助到你,给个赞呗!

特别声明: 本人只是菜鸟,记录一下平时学习笔记,高手莫喷,谢谢!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

高效程序员的45个习惯

高效程序员的45个习惯

Venkat Subramaniam、Andy Hunt / 钱安川、郑柯 / 人民邮电出版社 / 2010-01 / 35.00元

“书中‘切身感受’的内容非常有价值——通过它我们可以做到学有所思,思有所悟,悟有所行。” ——Nathaniel T. Schutta,《Ajax基础教程》作者 “此书通过常理和经验,阐述了为什么你应该在项目中使用敏捷方法。最难得的是,这些行之有效的实战经验,竟然从一本书中得到了。” ——Matthew Johnson,软件工程师 十年来,软件行业发生了翻天覆地的变化。敏捷......一起来看看 《高效程序员的45个习惯》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具