Bonjour,

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

Ce que je fais

j'ai le model certfications has many sucbscriptions et subscrbrubtions has many certification je veux afficher une liste de subscrbtions chacune avec les nom de certfications associés .
voici mon code

public function liste()
    {
        $subscriptions = $this->Subscriptions->find()->contain(['Certifications'])->all();
        $this->set(compact('subscriptions'));
        $this->set('_serialize', ['subscriptions']);
    }

     <?php foreach ($subscriptions as $subscription): ?>
                    <tr>

                        <td><?= h($subscription->name) ?></td>

                        <td><?= h($subscription->currency) ?></td>

                        <td><?php foreach ($subscriptions->certifications as $cert): echo $cert->name;?><?php endforeach; ?>//cette ligne qui fait l'erreur
                        </td>

                        <td class="actions">
                            <?= $this->Html->link(
                                '<i class=" fa fa-eye"></i>',
                                ['action' => 'view',$subscription->id],
                                ['escape' =>false]
                            )?>
                            <?= $this->Html->link(
                                '<i class="fa fa-pencil"></i>',
                                ['action' => 'edit', $subscription->id ],
                                ['escape' => false]
                            )?>
                            <?= $this->Form->postLink(
                                '<i class="del fa fa-trash-o"></i>',
                                ['action' => 'delete',$subscription->id],
                                [
                                    'escape' => false,
                                    'confirm' => __('Vous voulez vraiment supprimé cet abonnement # {0}?',$subscription->id)
                                ]
                            )?>

                        </td>
                    </tr>
                <?php endforeach; ?>

Ce que j'obtiens

j'obtient une liste mais la colonne certification contient cet erreur Undefined property: Cake\ORM\ResultSet::$certfications et Invalid argument supplied for foreach()

1 réponse


Lartak
Réponse acceptée

Bonjour.
Tu devrais remplacer :

foreach ($subscriptions->certifications as $cert):

Par :

foreach ($subscription->certifications as $cert):