Bonjour à tous,

J'ai un petit problème concernant l'update de données se trouvant dans une table d'association, sur cakephp 3.

Je vous fais un petit topo du contexte pour que tout le monde pige bien :

Au niveau de mes tables, j'ai une table users, une table styles et une table users_styles.

Je suis dans la fonction edit de mon UsersController. Cette fonction renvoie une vue, un formulaire où mon user peut modifier ses informations.

Le problème est le suivant :
A chaque validation du formulaire, les données qui devraient être enregistrées dans la table d'association sont recréées au lieu d'être modifiée. En revanche, sur les données de ma table principale l'update fonctionne sans soucis, sans recréer de nouveau enregistrement.

mon formulaire :

    <?= $this->Form->create($user, ['type' => 'file']); ?>
        <?php
            echo $this->Form->input('email');

            echo $this->Form->input('styles._ids', [
                'label'     => 'Vos styles musicaux favoris',
                'multiple'  => true
            ]);
        ?>
    <?= $this->Form->button(__("Mettre à jour")) ?>
    <?= $this->Form->end() ?>

mon controller :

public function edit()
    {

        $user = $this->Users->get($this->Auth->user('id'), [
            'contain' => ['Styles']
        ]);

        if ($this->request->is(['post', 'put', 'patch'])) {

            // c'est ici que ça se joue !
            $user = $this->Users->patchEntity($user,        $this->request->data);

            if ($this->Users->save($user)) {
                $this->Flash->success('Fécilitation, votre profil a été édité avec succès !');
            } else {
                $this->Flash->error("Oups! L'utilisateur n'a pas pu être enregistré. Veuillez réessayer.");
            }
        }

        $styles = $this->Users->Styles->find('list');
        $this->set(compact('user', 'styles'));
    }

Concernant mes Tables :
StylesTables belongsToMany Users et hasMany StylesUsers
UsersTables belongsToMany Styles et hasMany StylesUsers
StylesUsersTables belongsTo Users et Styles

J'ai essayé plusieurs choses et parcouru la doc' mais rien n'y fait, j'ai toujours ce problème. Si quelqu'un a une idée, je ne suis pas contre un petit coup de patte ;)

Aucune réponse