command->error("Таблица 'performers' отсутствует в базе данных!"); } // Очищаем таблицу перед заполнением DB::table('tracks')->truncate(); // 1. Получаем ID исполнителей из базы по их именам $rainbowId = DB::table('performers')->where('name', 'Rainbow')->value('id'); $blackSabbathId = DB::table('performers')->where('name', 'Black Sabbath')->value('id'); $dioId = DB::table('performers')->where('name', 'DIO')->value('id'); // Если сидер запускается отдельно и исполнителей нет, остановим процесс if (!$rainbowId || !$blackSabbathId || !$dioId) { $this->command->error('Исполнители не найдены в базе данных. Сначала запустите PerformerSeeder!'); return; } // 2. Список треков со связями $tracksData = [ // Rainbow ['name' => 'Gates Of Babylon', 'performer_id' => $rainbowId], ['name' => 'Lady Of The Lake', 'performer_id' => $rainbowId], ['name' => 'Tarot Woman', 'performer_id' => $rainbowId], ['name' => 'Long Live Rock\'n\'Roll', 'performer_id' => $rainbowId], ['name' => 'Man On The Silver Mountain', 'performer_id' => $rainbowId], ['name' => 'Kill The King', 'performer_id' => $rainbowId], ['name' => 'Can\'t Let You Go', 'performer_id' => $rainbowId], ['name' => 'Rainbow\'s Eyes', 'performer_id' => $rainbowId], ['name' => 'Sixteen Century Greensleeves', 'performer_id' => $rainbowId], // Black Sabbath ['name' => 'Neon Knights', 'performer_id' => $blackSabbathId], ['name' => 'Children Of The Sea', 'performer_id' => $blackSabbathId], ['name' => 'Heaven And Hell', 'performer_id' => $blackSabbathId], // DIO ['name' => 'Holy Diver', 'performer_id' => $dioId], ['name' => 'Last In Line', 'performer_id' => $dioId], ['name' => 'All The Fools Sailed Away', 'performer_id' => $dioId], ['name' => 'One Night In The City', 'performer_id' => $dioId], ['name' => 'Straight Through The Heart', 'performer_id' => $dioId], ]; // 3. Подготовка данных (добавляем случайную длину и метки времени) $now = Carbon::now(); foreach ($tracksData as &$track) { $track['length'] = rand(180, 420); // Генерируем длину трека от 3 до 7 минут (в секундах) $track['created_at'] = $now; $track['updated_at'] = $now; } // 4. Массовая вставка в базу данных DB::table('tracks')->insert($tracksData); } }