Bonjour,
Je débute sur Laravel et sur le développement en général. J'ai fait du php il y a 20 ans...
Je me suis donc penché sur un projet pour le moins fictif pour mon organisation.
J'ai quelque chose de fonctionnelle mais je me pose des questions sur l'optimisation. Je pense qu'en effet il y a beaucoup plus simple a faire.
Voici ma problématique.
J'ai un controllers qui permet de se connecter uniquement via google ( Mon organisation est complètement dépendante de google Workspace )
J'ai ajouté une règle sur le domaine pour que seulement les utilisateur avec le domaine de mon organisation puisse accéder a l'application. utilisateur@MAGASIN.leclerc
Dans un second temp je récupère le Magasin et le compare a des donnée dans la table magasin afin d'enregistré l'utilisateur. Le problème est maintenant ici :
Le souci c'est que je vient du coup faire 4 requête sur la table magasins.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 // Recuperation des infos Magasins $magasins = Magasin::where("domaine", $elements2[0])->first(); if (!isset($magasins)) { // Redirection de l'utilisateur si magasin non present dans la table magasin return redirect('BugContact'); } //Generation D'un mot de passe Aléatoire $length = 10; $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; for ($i = 0; $i < $length; $i++) { $index = rand(0, strlen($characters) - 1); $randomString .= $characters[$index]; } // Enregistrement de l'utilisateur $user = User::create( [ 'name' => $name, 'email' => $email, 'password' => bcrypt($randomString), // On attribue un mot de passe 'magasin' => $magasins->getnom_magasin(), 'magasin_IDENT' => $magasins->getident(), 'TypeCompte' => $magasins->gettype_de_compte(), 'Droit' => $magasins->getdroit_compte(), 'Avatar' => $avatar, ]); }
J'ai été contrait d'ajouter dans le model les lignes suivante :
Je pense que je me complique la tache.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Notifications\Notifiable; use Laravel\Sanctum\HasApiTokens; class Magasin extends Model { public function getident() { return $this->ident; } public function getnom_magasin() { return $this->nom_magasin; } public function gettype_de_compte() { return $this->type_de_compte; } public function getdroit_compte() { return $this->droit_compte; } }
Malheureusement je ne trouve pas de documentation très clair sur l'utilisation des modèle.
Pouvez vous me donner une piste ?
Merci.
Pour info j'ai enregistrer mon projet sur github : https://github.com/AMPROU/Btlecouest/
Partager