@lemonlimelike

Как правильно сделать, чтоб скрипт обработал лишь 4 записи?

Всем привет. Нужна хелпа. Как сделать, чтоб когда скрипт запускался и обрабатывал лишь 4 запи и затем их удалял и так каждый раз при запуске. Вот я написал скрипт, но он работает без ограничений.
$array = filmMoonwalk::chunk(200, function($films){
    foreach ($films as $value) {
        $filmFind = Film::where('title_ru', $value->title_ru)->first();
        if($filmFind == null){
            for ($i=1; $i <= 4; $i++) {
                $newFilm = new Film();
                $newFilm->kinopoisk_id = $value->kinopoisk_id;
                $newFilm->title_ru = $value->title_ru;
                $newFilm->title_en = $value->title_en;
                $newFilm->year = $value->year;
                $newFilm->genre = $value->genre;
                $newFilm->thumbnail = $value->thumbnail;
                $newFilm->description = $value->description;
                $newFilm->rating = $value->rating;
                $newFilm->tagline = $value->tagline;
                $newFilm->country = $value->country;
                $newFilm->actors = $value->actors;
                $newFilm->token = $value->token;
                $newFilm->iframe_url = $value->iframe_url;
                $newFilm->translator = $value->translator;
                $newFilm->save();
                $deleteFilm = filmMoonwalk::find($value->id)->delete();
                echo 'Успешно. ' . PHP_EOL;
                break;
            }
        }                    
    }
});
  • Вопрос задан
  • 61 просмотр
Решения вопроса 2
m0pfin
@m0pfin
ODRER BY id DESC LIMIT 4
в запросе нельзя сделать?
И затем их удалить
Ответ написан
Комментировать
@Narts
Вариант 1. Поставить LIMIT на SQL запрос
Вариант 2.
$array = filmMoonwalk::chunk(200, function($films){
    $j = 0;
    foreach ($films as $value) {

        if($j>4) break;
        $j++;

        $filmFind = Film::where('title_ru', $value->title_ru)->first();
        if($filmFind == null){
                $newFilm = new Film();
                $newFilm->kinopoisk_id = $value->kinopoisk_id;
                $newFilm->title_ru = $value->title_ru;
                $newFilm->title_en = $value->title_en;
                $newFilm->year = $value->year;
                $newFilm->genre = $value->genre;
                $newFilm->thumbnail = $value->thumbnail;
                $newFilm->description = $value->description;
                $newFilm->rating = $value->rating;
                $newFilm->tagline = $value->tagline;
                $newFilm->country = $value->country;
                $newFilm->actors = $value->actors;
                $newFilm->token = $value->token;
                $newFilm->iframe_url = $value->iframe_url;
                $newFilm->translator = $value->translator;
                $newFilm->save();
                $deleteFilm = filmMoonwalk::find($value->id)->delete();
                echo 'Успешно. ' . PHP_EOL;
        }                    
    }
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы