如何使用 Database: Seeding 将数据从一个 table 导入到另一个 table? (laravel 5.3)?
How to import data from one table to another table using Database: Seeding? (laravel 5.3)?
我的 DatabaseSeeder 是这样的:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder
{
public function run()
{
Model::unguard();
$this->call('MasterLookupsTableSeeder')
}
}
我的 MasterLookupsTableSeeder 是这样的:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class MasterLookupsTableSeeder extends Seeder
{
public function run()
{
DB::table('master_lookups')->insert([
'id' => '17',
'code' => '002',
'name' => 'sample data',
'information' => NULL,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
]);
}
}
当我运行php artisan db:seed --class=MasterLookupsTableSeeder
时,它会插入到tablemaster_lookups。它仍然是静态的。我想创建一个动态,其中数据被插入到 master_lookups table 中,取自另一个 table,例如 akuns table。 akuns table 有字段 ID、代码、名称 code_shopping。
我想要这样:
来自 akuns 的代码数据 table 插入字段代码 table master_lookups
来自 akuns 的名称数据 table 插入到 table 中的字段名称 master_lookups
code_shopping来自akuns的数据table以json的形式插入tablemaster_lookups中的字段信息。字段信息的数据类型为json.
有没有人可以帮助我?
让我们假设您的 akun table 附有模型 Akun。
我们对 master_lookups (MasterLookup) 假设同样的事情。
您可以尝试类似的方法:
Akun::all()->each(function($akun) {
$masterLookup = new MasterLookup;
$masterLookup->code = $akun->code;
$masterLookup->name = $akun->name;
$masterLookup->save()
}
根据您拥有的行数,您可能希望使用 chunk
方法而不是 all
来避免 运行 在尝试获取所有项目时内存不足.
我的 DatabaseSeeder 是这样的:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder
{
public function run()
{
Model::unguard();
$this->call('MasterLookupsTableSeeder')
}
}
我的 MasterLookupsTableSeeder 是这样的:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class MasterLookupsTableSeeder extends Seeder
{
public function run()
{
DB::table('master_lookups')->insert([
'id' => '17',
'code' => '002',
'name' => 'sample data',
'information' => NULL,
'created_at' => date('Y-m-d H:i:s'),
'updated_at' => date('Y-m-d H:i:s')
]);
}
}
当我运行php artisan db:seed --class=MasterLookupsTableSeeder
时,它会插入到tablemaster_lookups。它仍然是静态的。我想创建一个动态,其中数据被插入到 master_lookups table 中,取自另一个 table,例如 akuns table。 akuns table 有字段 ID、代码、名称 code_shopping。
我想要这样:
来自 akuns 的代码数据 table 插入字段代码 table master_lookups
来自 akuns 的名称数据 table 插入到 table 中的字段名称 master_lookups
code_shopping来自akuns的数据table以json的形式插入tablemaster_lookups中的字段信息。字段信息的数据类型为json.
有没有人可以帮助我?
让我们假设您的 akun table 附有模型 Akun。 我们对 master_lookups (MasterLookup) 假设同样的事情。
您可以尝试类似的方法:
Akun::all()->each(function($akun) {
$masterLookup = new MasterLookup;
$masterLookup->code = $akun->code;
$masterLookup->name = $akun->name;
$masterLookup->save()
}
根据您拥有的行数,您可能希望使用 chunk
方法而不是 all
来避免 运行 在尝试获取所有项目时内存不足.