3

我有一些数据必须在表中才能使我的应用程序正常工作,否则我会收到一条错误消息。

例如,如果您或其他任何人从 github 拉出我的应用程序,并且如果您运行 php artisan migrate 然后尝试测试该应用程序,您将收到错误:数据不存在或类似的东西。这是因为表中没有数据。

所以理想的解决方案是在运行之后:

 php artisan migrate

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

这应该用播种机以某种方式完成,但我不知道如何。谁能帮我举个例子?

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

id car_company

1 大众汽车

2 奔驰

3 奥迪

4 保时捷

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

 php artisan db:seed
4

3 回答 3

7

首先运行以下命令:

php 工匠制作:播种机 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);
    }

database\seeds中还有另一个类DatabaseSeeder 扩展 Seeder。在类里面有一个函数run()。在那里添加以下代码:

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

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

        Model::reguard();
    }

现在,当您运行php artisan db:seed时,您想要的值将被插入到那里。

于 2016-08-27T16:15:22.103 回答
0

运行后,php artisan migrate您需要运行php artisan db:seed,将种子写入数据库,您可以按照以下说明操作:https ://laravel.com/docs/5.2/seeding#using-model-factories

另一个有用的包是:https ://github.com/fzaninotto/Faker ,帮助你伪造数据到数据库。

于 2016-08-27T13:01:37.437 回答
0

目前对于这种情况,我使用数据库迁移。您不需要在迁移中只创建数据库结构,但您也可以在迁移中将数据添加到数据库,这样就足以运行php artisan migrate创建数据库结构并在数据库中创建所需的数据。

于 2016-08-27T15:10:16.883 回答