【发布时间】:2017-05-12 01:19:23
【问题描述】:
我的 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 时,它会插入到表 master_lookups。它仍然是静态的。我想创建一个动态,将数据插入到从另一个表(例如 akuns 表)获取的 master_lookups 表中。 akuns 表有字段 id、code、name、code_shopping。
我想要这样:
akuns 表中的代码数据插入到表 master_lookups 中的字段代码
akuns 表中的名称数据插入到表 master_lookups 中的字段名称
来自akuns表的code_shopping数据以json的形式插入到master_lookups表中的字段信息中。字段信息的数据类型为json。
有没有人可以帮助我?
【问题讨论】:
-
只是从表 akuns 中获取所有项目并循环在目标表上插入作为闭包的主体? Akun::all()->each(function($akun) { $masterLookup = new MasterLookup; $masterLookup->code = $akun->code; etc $masterLookup->save()} 取决于你的行数在你的表中有你可能想要使用块而不是全部来确保你不会耗尽内存。
标签: php mysql json laravel laravel-5.3