Laravel красноречивый запрос выполняется дважды - PullRequest
0 голосов
/ 20 сентября 2019

Я собираю некоторые данные из 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
}

1 Ответ

0 голосов
/ 20 сентября 2019

Понял, и это было очень странно.

Это было вызвано стилем = "background: url ('')", где URL был пустым, поэтому браузер предположил, что он ссылаетсята же самая страница и заставляла его загружаться снова, иногда несколько раз, пока браузер не решил остановить безумие перезагрузки / загрузки.

Это произошло на всех страницах, как это было в шаблоне макета.

Отдельное спасибо этой теме: Контроллер MVC вызывается дважды

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...