Оптимизировать чанк в Laravel - PullRequest
0 голосов
/ 16 апреля 2020

Этот подзапрос в моем условии if () застрял в моем коде. Кто-нибудь есть идея для оптимизации этого?

public function handle()
  {
    print "? Searching person \n";

    DB::table('excercise_pessoa')->orderBy('id')->chunk(1000, function ($people) {
      foreach ($people as $person) {
        $excercise = Excercise::find($person->excercise_id);
        $course = $excercise->grade->course;
        $personReal = Pessoa::find($person->pessoa_id);

        if ($course->pessoas->where('id', '=', $person->pessoa_id)->count() == 0) {
          $course->pessoas()->attach($personReal);

          print "? Associating course to people ID: $person->pessoa_id \n";
        }
      }
    });

    print "? Finished migration! \n";
  }

1 Ответ

0 голосов
/ 17 апреля 2020

Я решаю таким образом,

Удалите условие if () и используйте:

$course->pessoas()->syncWithoutDetaching($personReal);

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