Cześć wszystkim,
Mam pewien problem z pętlą do sprawdza czy dany record istnieje. Napisałem kod do generowania "unikalnego" id. Działa on na zasadzie, że pobiera aktualny czas w formarcie "ymdhis". Aby zabezpieczyć przed duplikatami, do kodu jest dodawana liczba "10" a następnie cały ciąg jest wysyłany i jest sprawdzane czy istnieje. Jeśli tak, to 10 przechodzi inkrementację i ponownie jest sprawdzane do czasu, aż nie będzie istniał rekord z takim ciągiem znaków.
Problem polega na tym, że pętla dodaje jeden rekord z datą i doczepiony ciągiem "100"
$ref = new DateTime();
$refFormated = $ref->format('ymdhis');
$i = 9;
do {
$i++;
$check = UsersPayments::where('reference', $refFormated . $i)->exists();
} while ($check || $i < 100);
$payment = UsersPayments::create([
'reference' => $refFormated . $i,
]);