46 lines
1.1 KiB
PHP
46 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Exception;
|
|
use File;
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class ProductHasRelationsTable extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*/
|
|
public function run(): void
|
|
{
|
|
$datas = json_decode(File::get('database/data/product_has_relations.json'));
|
|
|
|
$table = 'product_has_relations';
|
|
|
|
try {
|
|
foreach ($datas as $data) {
|
|
DB::table($table)->insert([
|
|
'product_id' => $data->product_id,
|
|
'productable_type' => $this->getProductableType($data->productable_type),
|
|
'productable_id' => $data->productable_id,
|
|
]);
|
|
}
|
|
} catch (Exception $e) {
|
|
info(['Ignore error', $e->getMessage()]);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get productable type
|
|
*/
|
|
public function getProductableType(string $name): string
|
|
{
|
|
return match ($name) {
|
|
'collection' => 'collection',
|
|
'App\\Models\\Shop\\Channel' => 'channel',
|
|
'category' => 'category',
|
|
};
|
|
}
|
|
}
|