How can I create a laravel
-seeder based on an array?
I have an array like this:
JavaScript
x
$positions = array(
array('industry_id' => '1', 'name' => 'developer'),
array('industry_id' => '1', 'name' => 'designer'),
array('industry_id' => '2', 'name' => 'project manager'),
array('industry_id' => '3', 'name' => 'manager'),
etc, etc,etc // there are like 150 entries
)
So instead of doing like this
JavaScript
Position::create([
'industry_id' => '1',
'name' => 'developer'
]);
for each entry, I was hoping there might be another way to achieve that?
Advertisement
Answer
Option A)
JavaScript
$positions = array(
array('industry_id' => '1', 'name' => 'developer'),
array('industry_id' => '1', 'name' => 'designer'),
array('industry_id' => '2', 'name' => 'project manager'),
array('industry_id' => '3', 'name' => 'manager'),
.
);
foreach ($positions as $position) {
Position::create([
'industry_id' => $position['industry_id'],
'name' => $position['name'],
]);
}
Option B)
JavaScript
DB::table((new Position)->getTable())->insert($positions);
Note: Insert doesn’t automatically populate the timestamp columns.