Bonsoir,
Ce n'est pas vraiment une question mais une remarque.
Dans une méthode d'un module,
je récupère des données à partir de plusieurs tables pour alimenter
une autre et j'ai constaté ceci :
Lorsque je crée mon objet en dehors de la boucle foreach, je ne trouve sur ma table
que le dernier objet enregistré ; alors que si je le crée dans la boucle
j'ai la totalité des objets
Je pense que l'explication vient du fait que la fonction save(), renvoie en mémoire l'identifiant de l'objet créé
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 public function _aliment() { //$oMk_mfp_config = new row_mk_mfp_config ; // nouveau objet en dehors de la boucle $tMk_temp=model_mk_temp::getInstance()->findAll(); // contient le nombre d'objets à importer $i = 0 ; foreach($tMk_temp as $oMk_temp) { $oMk_mfp = model_mk_mfp::getInstance()->isExiste($oMk_temp->num_serie) ; // pour récupérer l'id du mfp $oMk_mfp_config = new row_mk_mfp_config ; // nouveau objet à l'intérieur de la boucle foreach // assigne les données $oMk_mfp_config->mfp_id = $oMk_mfp->mfp_id ; $oMk_mfp_config->config_smtp = $oMk_temp->config_smtp ; $oMk_mfp_config->config_conso = $oMk_temp->config_conso ; $oMk_mfp_config->ip = $oMk_temp->ip ; $oMk_mfp_config->site = $oMk_temp->site ; $oMk_mfp_config->save() ; // sauvegarde l'objet //var_dump($oMk_mfp_config) ; exit() ; $i++ ; // juste pour compter les objets } echo "Nombre i : ".$i ; exit() ; // test }
du coup, à chaque passage, on ne fait que des modifications sur le premier objet créé dès le premier passage dans la boucle.
Cordialement
Partager