Créer un nombre unique

Par Antho, il y a 13 ans


Bonjour tout le monde,

J'ai besoin de faire appel a vous pour le développement d'un petit système sous Cake PHP V2.

J'ai besoin de générer un code unique et aléatoire à 6 chiffres (sans lettre)

J'ai déjà vu qu'il y avait la fonction uniqid() mais je me demander si Cake ne pouvais pas gérer ca tout seul ?

Et il faut aussi donc à la génération vérifier que ce chiffre n'existe pas en base.

Auriez vous une petite idée de comment je pourrais procéder ?

Merci par avance pour vos réponse.

5 réponses

Antho, il y a 13 ans

Merci bien j'avais vu aussi cette option mais je ne vois pas comment la mettre en place car il ne me faut que des chiffres et 6 en plus ...

Car je dois vérifié aussi qu'il soit vraiment unique et qu'il n'existe pas en base.

Ciloe, il y a 13 ans
$uid = intval(String::uuid);
    $valeur = $this->Model->find('count',array('conditions'=>array('id'= $uid)));
    if($valeur !=0){
        echo 'est présent';
    }else{
        echo 'est pas présent';
    }

Si le code est trop grand, tu le concatène ^^

Antho, il y a 13 ans

Merci pour le bout de code ;)

Par contre je ne comprends pas pourquoi il me retourne 6 chiffre (c'est bien ce que je voulais)

j'ai compris pour le if else mais comment je lui dis de re-généré un nouveau uuid du coup ???

duffJohn, il y a 13 ans

Le code de Ciloe te permet de savoir si ton uuid existe deja en base... après ne met pas ses echo mais tes bout de code/action que tu souhaite mettre en place.

Pour les 6chiffres ca doit etre la fonction intval(String::uuid) qui te retourne de base 6chiffres... a approfondir