public function getGenres() { echo "Started " . date("H:i:s") . "...... <br/><br/>"; $movie_count = Movies::all()->count(); echo $movie_count . " movies<br/>"; flush(); ob_flush(); for ($x = $this->counter; $x < 1000; $x += 10) { $movies = Movies::take(10)->offset($x)->get(); foreach ($movies as $movie) { if ($movie->imdb_id) { $client = new \GuzzleHttp\Client(); $my_token = env('IMDB_KEY'); $url = 'http://api.myapifilms.com/imdb/idIMDB?idIMDB=' . $movie->imdb_id . '&token=' . $my_token . '&format=json&language=en-us'; $imdb_response = $client->get($url); $imdb_body = $imdb_response->getBody(); $imdb_api = json_decode($imdb_body); if (count($imdb_api->data->movies)) { $imdb = $imdb_api->data->movies[0]; echo $movie->name . " : "; if ($imdb->genres) { $data = []; foreach ($imdb->genres as $genre) { $genre_id = Genres::where('type', $genre)->value('genre_id'); if ($genre_id) { $data[] = $genre_id; } } $movie->genres()->sync($data); echo " genres added<br/>"; } else { echo "no genres<br/>"; } flush(); ob_flush(); } } } } echo "<br/><br/>Finished " . date("H:i:s"); }