У меня два столбца в качестве составного ключа 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()
];
могу ли я как-нибудь обойти это?