Surcharge module crud

Questions concernant spécifiquement les modules

Surcharge module crud

Message par aj13 » 12 Août 2013, 20:17

Hello, j'ai créé un module commandes qui remonte toute les commandes passé. Seulement je remonte "Id client" pour chaque commande et je voudrais surcharger champ pour remonter le nom et le prénom du client... Donc sur l'index.php de la vue du module il faudrait que je remplace tout les "id_client" par le nom et le prénom de celui ci
aj13
 
Message(s) : 6
Inscription : 14 Juillet 2013, 10:06

Re: Surcharge module

Message par pa-de-solminihac » 12 Août 2013, 20:53

Tu as du code à me montrer pour m'aider à comprendre ?
pa-de-solminihac
Administrateur
 
Message(s) : 20
Inscription : 13 Juin 2013, 00:28

Re: Surcharge module

Message par aj13 » 12 Août 2013, 20:59

pas vraiment c'est un module qui utilise crud, il remonte donc tout les champs de ma table commandes et c'est sur l'index.php que je souhaite surcharger les infos récupéré de ma table
aj13
 
Message(s) : 6
Inscription : 14 Juillet 2013, 10:06

Re: Surcharge module

Message par pa-de-solminihac » 13 Août 2013, 08:53

En fait tu as 2 possibilités :

Solution 1 : surcharger manuellement le champ id_client :
Je pars du principe que ta table qui enregistre les commandes s'appelle commande. Il suffit alors de créer un fichier
Code : Tout sélectionner
view/commandes/index/index_fields/custom_commande.id_client.php


Tu peux maintenant y mettre ce que tu veux, ça remplacera le champ
Code : Tout sélectionner
<td></td>
qui affiche ton id_client...


Solution 2 : dire au module CRUD qu'il y a une jointure entre ta table commande et la table client afin qu'il affiche les champs de ta table client
Il faut modifier le modèle, sans doute dans ton fichier siteCommandeModel.php et modifier dans ta fonction _init() la partie :
Code : Tout sélectionner
        $this->tables = array(
            'commande' => ''
        );

pour la remplacer ainsi :
Code : Tout sélectionner
        $this->tables = array(
            'commandes' => '',
            'client' => array(
                'inner join' => "`commande`.`id_client` = `client`.`id` "
            )
        );

Il faudra aussi dire à CRUD qu'il ne doit accéder à la table client qu'en lecture, en rajoutant ensuite :
Code : Tout sélectionner
        $this->metas['readonly_tables'] = array(
            'client' => '',
        );

Il ne te reste plus qu'à choisir quelles colonnes tu voudras masquer.
pa-de-solminihac
Administrateur
 
Message(s) : 20
Inscription : 13 Juin 2013, 00:28

Re: Surcharge module

Message par aj13 » 13 Août 2013, 20:21

Yep ça fonctionne mais plutôt de la manière suivante

Code : Tout sélectionner
$this->tables = array(
                'commandes'=>'',
                'clementine_adresse' => array(
      'inner join' => "`commandes`.`id_client` = `clementine_adresse`.`clementine_users_id` "
   )               
);
aj13
 
Message(s) : 6
Inscription : 14 Juillet 2013, 10:06

Re: Surcharge module

Message par pa-de-solminihac » 13 Août 2013, 21:30

Merci, j'ai mis à jour mon message avec ta correction.
pa-de-solminihac
Administrateur
 
Message(s) : 20
Inscription : 13 Juin 2013, 00:28


Retour vers Questions sur les modules

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité