Maison > cadre php > Laravel > Comment Laravel génère-t-il un code d'invitation unique à quatre chiffres basé sur l'ID utilisateur ?

Comment Laravel génère-t-il un code d'invitation unique à quatre chiffres basé sur l'ID utilisateur ?

藏色散人
Libérer: 2020-11-01 16:22:31
avant
3844 Les gens l'ont consulté

Créer un nouveau fichier app/Services/InviteCodeService.php

Lier au conteneurCela dépend de votre préférence, si vous ne souhaitez pas lier C'est tout

.

Edit

    use App\Services\InviteCodeService;
    public function register()
    {
        $this->app->singleton('invite_code',InviteCodeService::class);
    }
Copier après la connexion

new AppServicesInviteCodeService

Test d'unicité

      $max_num = 200000;

        $codes = [];
        for ($i = 1; $i enCode($i);

        $i = 1;
        foreach ($codes as $code){
            $userId = app('invite_code')->deCode($code); // 邀请码获取用户id

            if( $userId != $i)
                dd("邀请码解密错误".$i);
            $i++;
        }

        $unique_count =  count(array_unique($codes));
        dd($unique_count);  // 不重复的总数
Copier après la connexion
app/Providers/AppServiceProvider.php

Les données ne sont pas dupliquées , et la solution du code d'invitation

est également correcte.

Il est à noter que les 20w用户id

numéros ne peuvent pas apparaître.

    Il ne peut pas y avoir de chaînes en double. Par exemple :
  1. $this->key Répétez. 0
  2. $this->keyabccdÀ propos de $this->keyc

La commande peut être perturbée,
// $this->key = 'abcdefghjkmnpqrstuvwxyz123456789'; // 没打乱的$this->key = 'kh8sjpdazetnmb5yw7rq4gc9fuv3216x'; // 打乱的
Copier après la connexion

  1. Il n'y a pas de limite de longueur, mais il vaut mieux ne pas être trop court. $this->keyPar exemple,

     : Le plus grand
  2. est 4 élevé à la puissance trois (256). Que se passera-t-il si
  3. dépasse 256 Le code d'invitation ne comporte plus que 5 chiffres..., ce qui n'est pas le cas. Ça n'a pas l'air bien.

    $this->key
    abcd Pour l'expérience utilisateur, n'ajoutez pas 用户id

    à la chaîne
  4. car il est facile de confondre les utilisateurs.
  5. : $this->keyio : l
    i : l (Bien sûr,
    ne peut pas apparaître) l est très similaire. 1
    o00
    Ps

Le nombre de chiffres du code d'invitation générés dépend du nombre de fois

pouvant être modulé.

Exemple用户idSupposons

C'est la base 4.

Par exemple : $this->key = abcd

Code d'invitation à 4 chiffres. Comment Laravel génère-t-il un code dinvitation unique à quatre chiffres basé sur lID utilisateur ?

Code d'invitation à 5 chiffres.

用户idCode d'invitation à 5 chiffres.
......255
(Donc s'il y a une limite sur le nombre de codes d'invitation, vous saurez quoi faire si vous êtes malin)256
500

Hex Quel est l'ID utilisateur maximum d'un code d'invitation à 4 chiffres ?

32

Conneries

32^4 = 1048576Parce que je souhaitez utiliser la fonction code d'invitation, ma première réaction :

Bien que le code trouvé sur Baidu soit utilisable, il était répétitif et insatisfaisant, j'ai donc adapté le code des autres.

Ensuite, il y a cet article.

                                                                                                  

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal