Bonjour,

je trouve un probleme quand je modifie mes formulaires les modifications ne se sauvegardent pas si vous avez des idées merci de bien vouloir m'aider .
et meme si je suis connectée depuis un compte les informations sauvegardé dans la base de données ne s'affichent pas .
si vous avez besoin d un certain code n hesitez pas à me le demander .

merci
voici mon code pour la fonction edit :
public function edit()
{
    $user = $this->Users->get($this->Auth->user('id'));
    if ($this->request->is(['post'])) {
        $this->Users->patchEntity($user, $this->request->data);
       // $user->id = $this->Auth->user('id');

        $i = $this->Users->patchEntity($user,$this->request->data);
        if ($this->Users->save($user)) {
            $this->Flash->success(__('Votre article a été mis à jour.'));
            return $this->redirect(['action' => 'index']);
        }
        $this->Flash->error(__('Impossible de mettre à jour votre article.'));
    }

    $this->set('user', $user);
}

5 réponses


Houdette
Auteur

voilà j'ai ajouté le code de la fonction edit

Houdette
Auteur

je parle de la mise à jour des formulaires

Hello,

Essaies ça dans ta première condition :

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

A mon avis, tu ne rentres pas dans la condition telle qu'elle est actuellement, c'est pour ça que rien ne se passe.

Vire aussi cette ligne, elle ne sert à rien :

$i = $this->Users->patchEntity($user,$this->request->data);

Tiens nous au courant !

Houdette
Auteur

je l'ai rajouté et j'ai viré l'autre ligne mais ça marche toujours pas il me donne cette erreur :
Record not found in table "users" with primary key [NULL]
en plus il ne sauvegarde pas les informations déjà enregistrées dans la base de données
voici mon code actuel :
public function edit()
{
$user = $this->Users->get($this->Auth->user('id'));
if ($this->request->is(['post', 'put', 'patch'])) {
$this->Users->patchEntity($user, $this->request->data);
$user = $this->Users->patchEntity($user,$this->request->data);

        //$this->Users->patchEntity($user, $this->request->data);
        //$user->id = $this->Auth->user('id');

        if ($this->Users->save($user)) {
            $this->Flash->success(__('Votre article a été mis à jour.'));
            return $this->redirect(['action' => 'index']);
        }
        $this->Flash->error(__('Impossible de mettre à jour votre article.'));
    }

    $this->set('user', $user);
}
Houdette
Auteur

c'est bon ça marche maintenant merci pour vos aides