在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']
]);