Laravel migration插入到表中



在Laravel 5.3中,我的up()函数如何将数据插入另一个表?

我只能看到指南中关于更新列等的内容

您可以像在正常的Laravel代码中那样做,只要该表已经创建。例如:

public function up()
{
    Schema::create('this_table', function (Blueprint $table) {
        $table->increments('id');
        $table->timestamps();
    });
    DB::table('that_table')->insert([]);
}

正如其他人建议的那样,您应该考虑将这样的逻辑移到数据库种子中是否更好。然而,我发现当您的表具有恒定的初始数据时,有时将这样的逻辑放在迁移文件中会更好。

供参考,这是一个开源的Laravel项目。

=========== 5年后编辑=============

我建议任何想要这样做的人考虑数据库种子,正如最初的答案所建议的那样。现在Laravel有一个schema:dump命令,可以用来压缩你的迁移。如果您有一个包含许多迁移的项目,这可能很有用。对我来说,我有一个408迁移的项目,现在使用schema:dump并不容易,因为迁移中的数据填充方法将丢失。

创建表后,可以按如下所示向表中插入数据

    DB::table('tablename')->insert([
        ['columnname1' => 1, 'columnname2' => 'Girl'],
        ['columnname1' => 2, 'columnname2' => 'Boy']
    ]);

最新更新