Bonjour,
Le contexte (cakephp 2.78) : mon taff est un petit element d'un projet plus gros, donc je dois m'adapter à la structure des tables est à l'ORM defini.
Soit deux tables campaign et bilan sans relations.
la table campaign contient entre autres un champ ordre: (1,2,3,4..integer).
La table bilan contient entre autres 4 champs: appel_1, appel_2,...appel_4.
Lorsque admin lance une campaign d'ordre 1 , je souhaiterais associer le contenu du champ appel_1 de la table bilans. Dans le controller ca fonctionne mon debug (suite au code ci dessous) , me récupère les champs appel_1 si Campaign.ordre=1 , ect idem pour 2,3,4.. dans la vue il ya deux foreach
-Vue: le foreach " $campagne_cours" affiche ce que je souhaite
-Vue le foreach "$appels "n'affiche que sur la derniere valeur soit appel_3 et ne boucle pas sur appel_1, appel_2

Ce que je fais

1/Controller
 on cherche le nbre de campagne effectuées en utilisant le champ ordre
<?php
        $d['campagne_cours']=$this->Treso2_campagne->find('all', array(
            'fields'=>array('created','nom','ordre'),
            'order'=>array('ordre ASC')
                        )); 
        ?>
       <?php  foreach ($d['campagne_cours'] as $k=>$v):
 //On compte le nbre de campagnes pour associer combien de champ appel (appel_1,appel2, appel_3,..) 
 //on debute par reconstruire en concatenant  le nom de l'appel en fonction de l'ordre des campagnes ordre=1 appel =appel_1
                $champ_appel="appel_".$v['Treso2_campagne']['ordre'];
                $d['appels']=$this->Treso2_bilan->find('all', array(
                    'fields'=>array($champ_appel),
                    'conditions'=>array('department_id'=>$this->Session->read('User.id')
                    ),
                    'contain'=>false,
                ));
                   endforeach; ?>
      // voir debug ci dessous
        ?>
        // j'envoie mon tableau $d  et $champ_appel  à ma vue 
           $this->set(compact ('champ_appel'));
        $this->set($d);

        2/ ma vue  // j'ai rajouté les num lignes pour le débug

   //*286*/           <?php  foreach($campagne_cours as $k=>$v):?>
   //meme si je déplace la boucle  de la ligne 291  <?php  foreach($appels as $k1=>$v1):?> vers  ici ca ne change rien.
                                <tr>
                                <td><?= $v['Treso2_campagne']['created'] ?></td>
                                <td><?= $v['Treso2_campagne']['nom'] ?></td>
                                  <?php  foreach($appels as $k1=>$v1):?>
  //*292*/                                  <?php   debug($champ_appel);   //verif de la variable envoyée
 / /*293*/                                               debug($v1['Treso2_bilan'][$champ_appel]);?> 
                                            <td><?= $v1['Treso2_bilan'][$champ_appel];?></td>
                                        </tr>
                                  <?php  endforeach; ?>
                        <?php  endforeach; ?>
                        <?php
                        die();
                        ?>

Ce que je veux

Je souhaiterais que la vue boucle et affiche les valeurs appel_1 sur la ligne campagne1 , appel_2 sur la ligne campagne2, ect...

Ce que j'obtiens

Debug du controller (qui affiche bien ce que je souhaite) puis Debug de la vue en dessous 
 //1/  resultats du debug controller 

    array(
    (int) 0 => array(
        'Treso2_bilan' => array(
            'appel_1' => '20641.83'
        )
    )
)
/app/Controller/TreasurieDepsController.php (line 223)
array(
    (int) 0 => array(
        'Treso2_bilan' => array(
            'appel_2' => '20641.83'
        )
    )
)
/app/Controller/TreasurieDepsController.php (line 223)
array(
    (int) 0 => array(
        'Treso2_bilan' => array(
            'appel_3' => '21267.34'
        )
    )
)
// fin resultats debug controller

// 2/resultats du debug de la vue
/app/View/TreasurieDeps/index_treasurie_dep.ctp (line 292)
'appel_3'
/app/View/TreasurieDeps/index_treasurie_dep.ctp (line 293)
'21267.34'
/app/View/TreasurieDeps/index_treasurie_dep.ctp (line 292)
'appel_3'
/app/View/TreasurieDeps/index_treasurie_dep.ctp (line 293)
'21267.34'
/app/View/TreasurieDeps/index_treasurie_dep.ctp (line 292)
'appel_3'
/app/View/TreasurieDeps/index_treasurie_dep.ctp (line 293)
'21267.34'
Date        |Campagne       |Somme appelée (BUG=>qui n'affiche que rvaleur de appel_3  sur toutes les lignes)
2016-10-13 17:22:34 |   Appel 1er versement 2016-2017 2016 2017 |21267.34
2016-10-15 14:31:48 |Appel 2nd versement 2016 2017  |21267.34
2016-10-15 14:32:01|    Appel 3eme versement 2016 2017  |21267.34

**Merci bcp pour votre aide éclairée
Cordialement
Desbutes**

Aucune réponse