Je commence juste à me familiariser avec cakephp (merci au développeur avant moi), et j'ai eu un truc marrant. J'ai finalement découvert ce qui n'allait pas, mais je ne sais toujours pas pourquoi. Dans le code très pseudo:cakephp appmodel sauvegarder la question
fonction de contrôleur appelle barre() deux fois dans la même portée:
$value = 'A';
$this->foo->bar($value);
// do other stuff
$value = 'B';
$this->foo->bar($value);
bar() appelle simplement le modèle des années CakePHP save() pour écrire $ la valeur à la table foobar $:
$AppModel->save(array(
'AppModel'=> array('value'=>$value)
));
Je m'attendais à ce que save() crée deux lignes dans foobar $, mais ce n'était pas le cas. Il a d'abord créé une ligne avec la valeur A, puis mis à jour cette ligne à la valeur B. Lorsque le deuxième appel a couru, il a reconnu l'ID de DB généré par l'appel précédent, a décidé qu'il s'agissait de la même entrée. C'est logique, mais ce sont toujours des appels distincts, n'est-ce pas? Quelle chose évidente manque-t-je ici? Merci beaucoup.