Оптимизация laravel отношения «многие ко многим» создают уникальные данные с помощью updateOrCreate - PullRequest
0 голосов
/ 07 марта 2020

У меня есть 3 модели, в которых я использую many to many отношения

  • Пользователь
  • Позиция
  • UserPosition

Вот мой код где я пытался создать уникальное имя позиции в модели позиции, а затем прикрепить его к пользователю.

Код:

public function createUserPosition()
{
    $user = User::find(1);
    $user->positions()->detach();

    $positions = [
        "developer",
        "coder",
        "singer"
    ];

    $ids = [];
    foreach ($positions as $name) {
        $position = Position::updateOrCreate(
            ["name" => $name],
            ["name" => $name]
        );
        $ids[] = $position->id;
    }

    $user->positions()->attach($ids);

    dd($user->positions);
}

Можно ли оптимизировать мой код путем сокращения запросов к базе данных

...