Bonjour,
Voila je rencontre un petit problème avec mon code.
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 .
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)