Changes

→‎Lien entre Objets métiers: Exemple mis à jour pour les versions plus récentes de Dolibarr où load_object_linked est remplacé par fetchObjectLinked
Line 1: Line 1:  +
<!-- BEGIN interlang links -->
 +
<!-- Do NOT edit this section
 +
    Links below are automatically managed by PolyglotBot
 +
    You can edit links on the English source page : Business_Objects -->
 +
[[en:Business_Objects]]
 +
[[es:Objetos_de_negociado]]
 +
[[zh:业务对象]]
 +
<!-- END interlang links -->
 +
 
{{TemplateDocDev}}
 
{{TemplateDocDev}}
   Line 20: Line 29:     
= Lien entre Objets métiers =
 
= Lien entre Objets métiers =
Certains objets métiers sont liés les uns aux autres. Ceci est fait dans Dolibarr via la [[Table llx_element_element]]. Mais vousn'avez pas à lire cette table pour récupérer les objets liés à un autre.
+
Certains objets métiers sont liés les uns aux autres. Ceci est fait dans Dolibarr via la [[Table llx_element_element]]. Mais vous n'avez pas à lire cette table pour récupérer les objets liés à un autre.
voici la portion de code qui montre comment faire cela:
+
Voici la portion de code qui montre comment faire cela:
 +
 
 +
Dolibarr 3.1 et versions ultérieures :
 +
<source lang="php">
 +
$commande = new Commande($db);
 +
$commande->fetch($commande_id);
 +
 
 +
 
 +
// on veut récupérer des factures à partir d’une commande dont on connaît l’ID
 +
$result = $commande->fetchObjectLinked($commande->id, 'commande', null, 'facture');
 +
if ($result <= 0) {
 +
    // erreur
 +
}
 +
 
 +
// important : les tableaux créés sont associatifs : leurs clés sont des rowid de llx_element_element.
 +
 
 +
 
 +
// FAUX (renverra NULL):
 +
$facture_id = $commande->linkedObjectsIds['facture'][0]
 +
 
 +
// CORRECT:
 +
$facture_id = array_values($commande->linkedObjectsIds['facture'])[0]
 +
 
 +
// MIEUX (permet de gérer le cas où il y aurait plus d’une facture) :
 +
foreach ($commande->linkedObjectsIds['facture'] as $element_element_id => $facture_id) {
 +
    // ...
 +
}
 +
</source>
 +
 
 +
Avant Dolibarr 3.1 :
 
<source lang="php">
 
<source lang="php">
 
// This load the array linked_object with objects that link to this one
 
// This load the array linked_object with objects that link to this one
Line 77: Line 115:  
$id=$mycompany->create($user);
 
$id=$mycompany->create($user);
 
   
 
   
// Pour charger l'objet
+
// Pour relire l'objet
 
$mycompany->fetch($id);
 
$mycompany->fetch($id);
 
   
 
   
// Pour mettre a jour
+
// Pour le mettre à jour
 +
$mycompany->nom='Big Brother 2'
 
$mycompany->update($user);
 
$mycompany->update($user);
 
</source>
 
</source>
    
== Autres exemples ==
 
== Autres exemples ==
Vous trouverez d'autres exemples de manipulation d'objet Dolibarr (Création, Lecture, Modification, Suppression) dans le répertoire dev/samples du snapshot CVS de Dolibarr.
+
Vous trouverez d'autres exemples de manipulation d'objet Dolibarr (Création, Lecture, Modification, Suppression) dans le répertoire dev/samples du snapshot de Dolibarr.