У меня есть таблица в моей базе данных называется keys
, что имеет такую структуру:Laravel: Генерация случайных уникальный маркер
id | user_id | token_id | token_key
Каждый раз, когда пользователь входит в мой сайт, мне нужно, чтобы создать новый token_id
и token_key
набор для этого пользователя. Как я могу сгенерировать случайный токен как для token_id
, так и для token_key
, сохраняя при этом два значения?
Например, если:
token_id
являетсяdfbs98641aretwsg
,token_key
являетсяsdf389dxbf1sdz51fga65dfg74asdf
Значение:
id | user_id | token_id | token_key
1 | 1 | dfbs98641aretwsg | sdf389dxbf1sdz51fga65dfg74asdf
Там не может быть никакой другой строки в таблице с это комбинация жетонов. Как я могу это сделать?
Можете ли вы объяснить, как цикл в то время как будет гарантировать там выиграл «Есть ли дубликаты? – user5486944
В частности, что делает 'instanceof' в цикле while? – user5486944
['do-while'] (http://php.net/manual/en/control-structures.do.while.php) цикл будет продолжать« делать », если оператор« while »оценивается как« true » '(и он будет работать хотя бы один раз, в отличие от' while-do'). В этом конкретном примере он будет генерировать пару id/key токенов, тогда он попытается найти пользователя в базе данных, имеющей определенную пару токенов и ключей. 'instanceof' проверяет, является ли результат экземпляром класса' User', что означает, что он проверяет, найден ли такой пользователь. Если это так, 'do' будет выполняться снова и сделать еще пару, и так далее, пока не найдет никакого пользователя, имеющего сгенерированную пару идентификатора/ключа token. –