Bonjour je veux créer des formulaires pour la modification des articles ;voici ma fonction edit :
public function edit()
{
$article = $this->Articles->get('id');
if ($this->request->is(['post', 'put'])) {
$this->Articles->patchEntity($article, $this->request->data);
if ($this->Articles->save($article)) {
$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('article', $article);
}
ça me donne cette erreur : Record not found in table "articles" 

j'ai besoin de votre aide 
merci

15 réponses


connected
Réponse acceptée

Bonjour,

tu dois passer une variable à la méthode get :

$article = $this->Articles->get(1);  // 1 par exemple

Tu va avoir besoin de variabiliser cette valeur :

public function edit($id)
  {
    $article = $this->Articles->get($id);
    if ($this->request->is(['post', 'put'])) {
      $this->Articles->patchEntity($article, $this->request->data);
      if ($this->Articles->save($article)) {
        $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('article', $article);
  }

Tu devras faire passer l'id via ton url du style : http://tonsite.tld/toncontroller/edit/1

Bon courage

Edit :
@DubleYu, pourquoi toutes ces questions ? où veux tu en venir ? Je ne vois pas en quoi les réponses à tes questions pourront l'aider.

Peut tu editer, pour foutre le code bien comme il faut dans la balise code, As tu des liaisons ? Catgéories, Tags ou enore utilisateurs ? Et tu sur d'avoir des articles dans ta base de données ?

Houdette
Auteur

oui j'ai une table article dans ma base de données, j ai pas bien compris de quelles liaison tu parles ?

Dans ta table articles tu as des articles au moins ?
Est-ce tu as des relations BelongsTomany, BelongsTo, HasOne ...

@DubleYu, je ne vois vraiment pas le rapport ici, peut-être tu pourras m'éclairer sur l'importance de connaître les associations...
@Houdette, as-tu vu ma réponse plus haut ?

Tout simplement parce que si il n'as pas de liaison Cake ne lui affiche pas l'article, lorsque j'ai des liaisons et que je n'enregistre pas de laision, il me bloque, tout simplement

Houdette
Auteur

ouiiii merci beaucoup ça marche :)

Houdette
Auteur

j ai du juste passer une variable à la méthode get merci @connected

@DubleYu, il travaille sur le model Article, et fait un get dessus, liaisons ou pas ça ne change rien...

Houdette
Auteur

pouvez vous m'aider pour check le role de l utilisateur s il est admin il peut tout modifier sinn il peut pas je suis débutante sur cakephp 3

@Houdette, créé un nouveau sujet avec le code existant, et marque celui-ci comme résolu. Je te répondrai volontier ;)

Houdette
Auteur

d'accord merci beaucoup ;)

Houdette
Auteur

@connected c'est fait pour le nouveau sujet mais je sais pas comment marquer que c'est résolu (je suis nouvelle sur le forum)

Au niveau de chaque post tu as sur la droite sur fond vert un lien "Il a répondu à ma question !" Tu cliques dessus , au niveau du post qui a répondu à ton problème.

Houdette
Auteur

ah ok merci :)