[Laravel] Cherche info sur model
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 :
Code:
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,
]);
} |
Le souci c'est que je vient du coup faire 4 requête sur la table magasins.
J'ai été contrait d'ajouter dans le model les lignes suivante :
Code:
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;
}
} |
Je pense que je me complique la tache.
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/