заполнение laravel проверка составного ключа существует, но по-прежнему возникает ошибка целостности - PullRequest
0 голосов
/ 28 мая 2020

У меня два столбца в качестве составного ключа user_id и club_id. Это то, что я придумал до сих пор, но я все еще получаю ограничение целостности. Что я сделал, так это проверил, существуют ли столбцы, а затем обернул его внутрь, пока l oop.

SQLSTATE [23000]: нарушение ограничения целостности: 1062 Дублирующаяся запись '13-5 'для ключа' user_id_club_id '

$randclub = App\Club::pluck('id')->all(); // returns an array of all ids in the table
$randuser = App\User::pluck('id')->all();

$club = $faker->randomElement($randclub); // returns random element in array
$user = $faker->randomElement($randuser);

while (UserClub::where('user_id', $user)->where('club_id', $club)->exists()) {
    // if (($key = array_search($user, $randuser)) !== false) {
    //  unset($randuser[$key]);
    // }

    // if (($key = array_search($club, $randclub)) !== false) {
    //  unset($randclub[$key]);
    // }
    $club = $faker->randomElement($randclub);
    $user = $faker->randomElement($randuser);

}

return [
    'user_id' => $user,
    'club_id' => $club,
    'position_id' => 6, // secret
    'created_at' => now(),
    'updated_at' => now()
];

могу ли я как-нибудь обойти это?

...