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

标签 laravel laravel-5 laravel-migrations laravel-seeding

我有一些数据必须在表中才能使我的应用运行,否则我会收到一条错误消息。

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

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

 php artisan migrate

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

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

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

id car_company

1 大众汽车

2 奔驰

3辆奥迪

4 保时捷

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

 php artisan db:seed

最佳答案

首先运行以下命令:

php artisan make:seeder CarCompanyTableSeeder。这将在 database\seeds 中创建类 CarCompanyTableSeeder

enter image description here

在函数 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中还有一个类class DatabaseSeeder extends Seeder。在类内部有一个函数run()。在此处添加以下代码:

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

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

        Model::reguard();
    }

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

关于Laravel 5 - 如何在部署应用程序后自动播种表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39180882/

相关文章:

php - Laravel,从迁移创建 MySQL 触发器

php - 将数组值插入数据库 laravel

php - 除了一个之外,如何运行 laravel 迁移和 DB seeder

laravel-4 - 子类迁移器不适用于命名空间迁移

javascript - 使用 Dropzone 'ProcessQueue' 事件发送参数

php - 尝试将验证从 Controller 转移到 Laravel 5.2.15 中的请求类

php - 如何忽略 Laravel 路由中的站点地图 url?

php - 我可以向 Laravel 中的 Route::group 添加参数,但在分派(dispatch)到 Laravel 中的路由之前将其删除吗?

php - Laravel Eloquent created_at 正在更新

mysql - Laravel 5.1 迁移和播种无法截断外键约束中引用的表