Bonjour à tous,
j'ai un petit soucis de sauvegarde que je n'arrive pas à comprendre pour l'instant.
J'ai mis en place un système de commentaires sur un simple blog et il m'est impossible d'effectuer deux sauvegardes lorsque un utilisateur a déjà commenter un post (et ce quelque soit son niveau -- admin ou simple user). Par contre, si cet utilisateur n'a pas encore posté de commentaires, la sauvegarde se déroule sans problème.
En débugant différentes données ($data
et $comment
), je récupère bien les données et l'entité est créée correctement...
Ma fonction est pourtant simple :
public function add()
{
if ($this->request->is('post')) {
$data = $this->request->data;
if ($this->Auth->user()) {
$data['username'] = $this->Auth->user('username') ? $this->Auth->user('username') : $this->Auth->user('firstname') .' '. $this->Auth->user('lastname');
$data['email'] = $this->Auth->user('email');
}
$comment = $this->Comments->newEntity($data);
if ($comment = $this->Comments->save($comment)) {
echo \json_encode(['comment' => [
'id' => $comment->id,
'username' => $comment->username,
'content' => $comment->content,
'date' => $comment->created
]]);
} else {
echo \json_encode(['error' => 'Une erreur est survenue lors de la sauvegarde.']);
}
}
}
J'ai testé en supprimant la validation des commentaires et j'ai le même comportement.
J'ai une relation classique : Users hasMany Comments
, Users hasMany Posts
et Comments belongsTo Users
, Comments belongsTo Posts
.
Une idée ?
Romain
Bonsoir Romain, cela ressemble pourtant à de la validation. As-tu également supprimé les buildRules
lorsque tu as désactivé la validation ?
Bonsoir.
il m'est impossible d'effectuer deux sauvegardes lorsque un utilisateur a déjà commenter un post
Et puis
En débugant différentes données ($data
et $comment
), je récupère bien les données et l'entité est créée correctement...
Contradictoire, non ?
@Lartak : oui, contradictoire mais c'est pourtant bien ce que j'ai... Une sauvegarde qui s'effectue et la deuxième qui retourne false...
@antograssiot : effectivement, c'était bien ça ! Je n'y avais pas pensé du tout. Merci !