如何使用预设数据填充数据库?

时间:2016-09-02 16:16:42

标签: laravel

我正在尝试运行完成的网络应用程序,但它给了我错误,几乎可以肯定是由于应用程序试图找出要使用的语言版本。我已经成功完成了迁移,但所有表格(国家,语言等)都是空的。如何使用应用程序正在查找的数据填充它们?

2 个答案:

答案 0 :(得分:1)

您可以在迁移过程中创建默认项目。

public function up()
{
    Schema::create('users', function(Blueprint $table) {
        $table->increments('id');
        $table->string('name');
    });

    $user = new App\User;
    $user->name = 'Bob';
    $user->save();
}

您也可以build seeders

答案 1 :(得分:0)

新安装的Laravel应用程序中包含一个默认的DatabaseSeeder类。它允许您将数据插入数据库。在database/seeds目录中查找:

<?php

use Illuminate\Database\Seeder;

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

如果要将数据添加到countries表,请按以下方式编写:

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('countries)->insert([
        'code' => 'fra',
        'name' => 'France',
    ]);
    }
}    

然后使用db:seed命令为您的数据库设定种子:

php artisan db:seed

就是这样。

您还可以创建自己的Seeders,例如ProductionDatabaseSeederDummyDataSeeder,在迁移数据库时自动运行播种机,甚至可以使用模型工厂轻松生成虚拟数据。请参阅laravel docs中的更多内容。