Я собираю некоторые данные из Instagram, а затем создаю запись в базе данных, но иногда эта запись будет вставлена дважды (или больше).Когда я добавляю echo
в код, он печатает / выводит только один раз, поэтому я не уверен, почему иногда записи вставляются несколько раз.Вот код:
public function handle()
{
#Define variables
$website_id = null;
$user_id = null;
$avg_dataset_start = null;
$avg_dataset_end = null;
try {
$api = new \Instagram\Api();
$api->setUserName($this->username);
$obj = $api->getFeed();
#quick hack to convert to nested obj
$data = json_decode(json_encode($obj));
$data->videos_count = 0;
$data->pictures_count = 0;
$data->avgPostLikes = 0;
$data->avgPostComments = 0;
} catch (Exception $e) {
return $e;
}
$account = InstagramAccount::where('instagram_id', $data->id)->orWhere('username', $data->userName)->first();
$scraped_data = InstagramAccountScrape::create([
'instagram_account_id' => $account->id,
'username' => $data->userName,
'full_name' => $data->fullName,
'biography' => $data->biography,
'profile_picture_url' => $data->profilePicture,
'external_url' => $data->externalUrl,
'website_id' => $website_id,
'media_count' => $data->mediaCount,
'followers_count' => $data->followers,
'following_count' => $data->following,
'avg_likes_count' => $data->avgPostLikes,
'avg_comments_count' => $data->avgPostComments,
'avg_dataset_start' => $avg_dataset_start,
'avg_dataset_end' => $avg_dataset_end,
'avg_dataset_photos_count' => $data->pictures_count,
'avg_dataset_videos_count' => $data->videos_count,
'is_private' => $data->private,
'is_verified' => $data->verified,
'user_id' => $user_id,
]); #Sometimes adds more than one record
echo "Print once please"; #prints once, as expected
return response()->json($scraped_data); #returns only one instance
}