Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

je veux afficher les noms des certifications qui se suit par un virgule dans la page index du documentations tels que dans Documentations Table j'ai

et dans certificationsTable j'ai
* @property \Cake\ORM\Association\BelongsToMany $Documentations
et dans la fonction index j'ai ce code


      $certifications = $this->Documentations->Certifications->find('list', ['limit' => 200]);

        $this->set(compact('documentations','certifications'));
        $this->set('_serialize', ['documentations']);```
        index.ctp
          ``` <?php foreach ($documentations as $document): ?>
                    <tr>
                        <td><?= $this->Number->format($document->id) ?></td>
                        <td><?= h($document->title) ?></td>
                        <td><?= h( $document->Certifications)?></td>
                        <td><?= h($document->filename) ?></td>
                        <td><?= h($document->created) ?></td> ```
    j'ai essayer de faire un foreach dans cette ligne   ``` <td><?= h( $document->Certifications)?></td>``` pour afficher les names (certfications ->name) mais cette essaie ne marche pas .

1 réponse


flashios09
Réponse acceptée

Bonsoir ibk,
Pourquoi tu utilises $this->set('_serialize') ?
1- Tu dois ajouter le key 'certifications' au tableau _serialize
$this->set('_serialize', ['documentations', 'certifications'])
2- Il faut faire attention au nom des variables: respecter la casse
tu passes certifications avec un c et tu fais un echo de Certifications avec un C

Dans la vue index.ctp, tu as seulement deux variables documentations et certifications, si tu veux afficher la liste des certifications comma separated, il faut juste convertir le tableau(array) certifications en une chaine(string), soit via un foreach

foreach($certifications as $certification) :
    // ...

soit tu utilises la fonction php implode

<td><?= implode(',', $certifications) ?></td>

Essaye de debugger les deux variables documentations et certifications en utilisant la fonction debug($var) ou via le debug_kit (onglet variables)