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

MkFramework Discussion :

Méthodes des classes du model


Sujet :

MkFramework

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut Méthodes des classes du model
    Salut,
    C'est peut être une question bête mais je la pose quand même.
    Dans une classe, peut on faire une méthode dont la requête SQL renvoie des informations provenant de plusieurs tables? Illustration:
    J'ai les tables 'auteur' et 'livre', dans la classe livre je fais ceci:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public function findPersonnalise($iAuteur){
    		return $this->findMany('SELECT livre.titre, livre.prix, auteur.nom, ville.nom
                                                     FROM livre, auteur, ville
                                                     WHERE ville.id=auteur.ville_id
                                                      and     auteur.id = livre.auteur_id
                                                      and     livre.auteur_id=?',$iAuteur );
    	}
    Je me demande comment sera constitué le tableau que retournera cette méthode. et si je n'aurais pas d'erreur dans la classe 'row_livres' lorsque les objets seront créés.

    peut tu m'aider imikado?

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    OUI on peut

    Pas de soucis: les objets ne sont pas générés par rapport à des "champs" fixe, donc vous pouvez (et c'est conseillé) faire vos jointure.

    Par contre, attention: si vous souhaitez par la suite faire des modification suivi d'un "save", là ça peut poser problème (car il essaiera de faire un update de l'ensemble des champs)
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    Ok, donc je peux faire cela seulement pour exploiter les resultats qui me seront retournés par la requete, mais je ne peux pas modifier l'objet retourné et vouloir l'enregistrer à nouveau. C'est compris.

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Si vous pouvez, car la liste des champs de l'update se construit à chaque fois que vous écrasez une propriété par exemple:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $oArticle=model_article::findById(2);
    $oArticle->nom='toto';
    $oArticle->save();

    ici, le framework enregistre que vous avez modifiez "nom", il y aura donc une update sur "nom" et uniquement ce champ, même si l'objet contient d'autres champs
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    i vous avez un soucis:

    QUand vous faites:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $oArticle=model_article::findById(2);
    $oArticle->nom='toto';
    $oArticle->save();

    Le framework verifie que la propriété n'existe pas, et l'enregistre dans un tableau "à updater"

    Par contre, si vous avez une classe row ainsi:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class row_article extends abstract_row{
     
        //propriete public "externe"
        public $category_name;
     
    }

    La si je fais:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $oArticle=model_article::findById(2);
    $oArticle->nom='toto';
    $oArticle->category_name='toto';
    $oArticle->save();

    Ici, la propriété category_name étant existante, à son écrasement, il le fait rien (il ne la met pas dans le tableau des champs à modifier)
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  6. #6
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 304
    Points : 107
    Points
    107
    Par défaut
    D'accord c'est compris. Merci.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/05/2009, 12h31
  2. Ajouter des méthodes, des classes
    Par Toba63 dans le forum iReport
    Réponses: 3
    Dernier message: 20/08/2008, 10h29
  3. Réponses: 1
    Dernier message: 04/06/2008, 17h19
  4. Modélisation utilisant des classes/interfaces modeles
    Par X448GN dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 21/05/2008, 09h23
  5. Réponses: 4
    Dernier message: 27/07/2007, 18h18

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