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

Ext JS / Sencha Discussion :

Association entre modèles


Sujet :

Ext JS / Sencha

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Association entre modèles
    Bonjour tout le monde,

    Je souhaite faire une association entre mes models Utilisateurs et Infrastructures afin de pouvoir afficher toutes les infrastructure d'un utilisateur. Malheureusement je n'arrive pas à trouver une solution. Voici mes codes :

    Model Utilisateurs
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    //Définition du modèle
    Ext.define('MyDesktop.model.UtilisateurModele', {
    	extend: 'Ext.data.Model',
    	//Définition des champs de la base de données
        fields: [
    		'pk_uti', 
    		'fk_pk_loc', 
    		'fk_pk_typ', 
    		'fk_pk_dro', 
    		'nom_loc', 
    		'nom_dro',
    		'lib_type', 
    		'tit_uti',
    		'pre_uti', 
    		'nom_uti',
    		'datnai_uti', 
    		'adr_uti',
    		'telfix_uti', 
    		'telpor_uti', 
    		'ema_uti', 
    		'web_uti', 
    		'fax_uti', 
    		'soc_uti', 
    		'rem_uti', 
    		'username_uti', 
    		'pass_uti'
    	],
    	proxy: {
    		type: 'ajax',
    		url: 'data/getutilisateurliste.php',
    		reader: {
    			type: 'json',
    			root: 'data',
    			totalProperty: 'total'
    		}
    	},
    	associations: [
            {
    			type: 'hasMany', 
    			model: 'MyDesktop.model.InfrastructureModele', 
    			name: 'infrastructuresAssoc', 
    			primaryKey: 'pk_uti', 
    			foreignKey: 'fk_pk_uti'
    		}
        ]
     
    });
    Model Infrastructures

    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
    33
    34
    35
    36
    37
    38
    39
    40
     
    //Définition du modèle
    Ext.define('MyDesktop.model.InfrastructureModele', {
    	extend: 'Ext.data.Model',
    	//Définition des champs de la base de données
        fields: [ 'pk_inf',
                   'fk_pk_uti',
                   'username_uti', 
                   'nom_inf', 
                   'typ_inf', 
                   'fab_inf',
                   'datach_inf', 
                   'pri_inf', 
                   'ver_log', 
                   'nbrlic_log', 
                   'numser_mat', 
                   'os_mat', 
                   'mod_mat', 
                   'fir_mat', 
                   'numref_mat'],
     
            proxy: new Ext.data.HttpProxy({
    		type: 'json',
     
    		//URL du fichier PHP donnant la liste grâce à une requête
    		url: 'data/getinfrastructureliste.php',
    		reader: {
    			root: 'infrastructuresData',
    			totalProperty: 'total'
    		}
    	}),
    	associations: [{
    		type: 'hasMany', 
    		model: 'MyDesktop.model.InfrastructureModele', 
    		name: 'infrastructuresAssoc', 
    		primaryKey: 'pk_uti', 
    		foreignKey: 'fk_pk_uti'
    	}]
     
    });
    Voila comment je les associe

    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
     
     
        /* load child models that are in the response (uses associationKey): */
        MyDesktop.model.UtilisateurModele.load(1, {
            success: function(record){
    			console.log(record.infrastructures);
            }
        });
     
        /* load child models at will (uses foreignKey). this overwrites child model that are in the first load response */
        MyDesktop.model.UtilisateurModele.load(1, {
            success: function(record){
    			record.infrastructures.load({
    				callback:function(){
    					console.log(arguments);
    				}
    			});
            }
        });
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    http://docs.sencha.com/ext-js/4-1/#!/guide/data

    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
    33
    34
    35
    36
    37
    Ext.define('User', {
        extend: 'Ext.data.Model',
        fields: ['id', 'name'],
        proxy: {
            type: 'rest',
            url : 'data/users',
            reader: {
                type: 'json',
                root: 'users'
            }
        },
     
        hasMany: 'Post' // shorthand for { model: 'Post', name: 'posts' }
    });
     
    Ext.define('Post', {
        extend: 'Ext.data.Model',
        fields: ['id', 'user_id', 'title', 'body'],
     
        proxy: {
            type: 'rest',
            url : 'data/posts',
            reader: {
                type: 'json',
                root: 'posts'
            }
        },
        belongsTo: 'User',
        hasMany: { model: 'Comment', name: 'comments' }
    });
     
    Ext.define('Comment', {
        extend: 'Ext.data.Model',
        fields: ['id', 'post_id', 'name', 'message'],
     
        belongsTo: 'Post'
    });

Discussions similaires

  1. Association entre objet Id ou référence ?
    Par grosFab dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 19/04/2007, 13h41
  2. Association entre deux classes en dotnet
    Par lulu3111 dans le forum C++/CLI
    Réponses: 4
    Dernier message: 18/04/2007, 21h15
  3. [MCD]Associations entre Entités
    Par flatron dans le forum Schéma
    Réponses: 8
    Dernier message: 09/02/2007, 17h07
  4. [MCD] Associations entre trois entités
    Par wolflinger dans le forum Schéma
    Réponses: 5
    Dernier message: 21/03/2006, 14h49

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