IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

[Laravel] Cherche info sur model


Sujet :

Laravel PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Points : 5
    Points
    5
    Par défaut [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 : 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,
                        ]);
                }
    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 : 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;
    }
     
    }
    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/

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bonjour,
    Le model de Lravel repose que des conventions.
    Si vous repsectez ces conventions, alors il est inutile de créer des getters comme vous le faites.

    J'ai juste un doute sur le ident (est-xe bien le id de la table ?).

    sinon il suffit de faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    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
    {
        protected $primarykey = "ident"; 
    }
    dans le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $user = User::create(
                        [
                        'name' => $name,
                        'email' => $email,
                        'password' => bcrypt($randomString), // On attribue un mot de passe
                        'magasin' => $magasins->nom_magasin(),
                        'magasin_IDENT' => $magasins->ident(),
                        'TypeCompte' => $magasins->type_de_compte(),
                        'Droit' => $magasins->droit_compte(),
                        'Avatar' => $avatar,
                        ]);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. cherche infos sur utilisation port usb
    Par pcouas dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 03/09/2009, 08h18
  2. Réponses: 11
    Dernier message: 26/02/2007, 09h44
  3. Cherche info sur la Zend Platform
    Par developpeur_mehdi dans le forum Zend
    Réponses: 1
    Dernier message: 14/01/2007, 13h53
  4. Cherche infos sur PySql
    Par systemofaxav dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/11/2006, 15h04
  5. [Histoire] Cherche infos sur l'évolution des SGBD
    Par jack554 dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 12/10/2005, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo