Laravel 5 - 如何在部署应用程序后自动播种表格?

lew*_*s4u 2 laravel laravel-5 laravel-seeding laravel-migrations

我有一些必须在表中的数据,以便我的应用程序工作,否则我收到一条错误消息.

例如,如果你或其他任何人从github拉我的应用程序,如果你运行php artisan migrate然后尝试测试应用程序你会得到一个错误:数据不存在或类似的东西.这是因为表中没有数据.

理想的解决方案是运行后:

 php artisan migrate
Run Code Online (Sandbox Code Playgroud)

您还可以在该表中获得所需的数据.

这应该用播种机以某种方式完成,但我不知道如何.任何人都可以帮忙并举个例子吗?

如何为应该进入car_company表的数据制作种子:

id car_company

1大众汽车

2辆梅赛德斯

3奥迪

4保时捷

有4行,我想在运行后插入它们

 php artisan db:seed
Run Code Online (Sandbox Code Playgroud)

Rum*_*mel 6

首先运行以下命令:

php artisan make:播种机CarCompanyTableSeeder.这将在database\seeds中创建类CarCompanyTableSeeder.

在此输入图像描述

在函数public function run()里面请添加以下代码:

public function run()
    {
        $data = array(
            array(
                'id'            =>    1,
                'car_company'   =>   'Volkswagen'
            ),
            array(
                'id'            =>    2,
                'car_company'   =>   'Mercedes'
            ),
            array(
                'id'            =>    3,
                'car_company'   =>   'Audi'
            ),
            array(
                'id'            =>    4,
                'car_company'   =>   'Porsche'
            )
        );

        DB::table('car_company')->insert($data);
    }
Run Code Online (Sandbox Code Playgroud)

还有另一个类class DatabaseSeeder数据库\种子中扩展了Seeder.在类中有一个函数run().在那里添加以下代码:

public function run()
    {
        Model::unguard();

        $this->call(CarCompanyTableSeeder::class);

        Model::reguard();
    }
Run Code Online (Sandbox Code Playgroud)

现在,当你运行php artisan db:seed时,那里会插入你想要的值.

  • 投票给好的答案 (2认同)