J'essaie d'utiliser la requête de mise à jour la plus simple, mais Doctrine émet une instruction INSERT au lieu d'une UPDATE.Doctrine insère quand il faut mettre à jour
$q = Doctrine_Query::create()
->from('Image i')
->where('id = ?');
$image = $q->fetchOne($articleId, Doctrine_Core::HYDRATE_RECORD);
$image->copyright = "some text";
$image->save();
J'ai également essayé d'utiliser l'exemple du manuel, mais encore un nouveau record s'inséré:
$userTable = Doctrine_Core::getTable('User');
$user = $userTable->find(2);
if ($user !== false) {
$user->username = 'Jack Daniels';
$user->save();
}
modifier:
Cet exemple des travaux manuels:
$user = new User();
$user->assignIdentifier(1);
$user->username = 'jwage';
$user->save();
La chose amusante est que j'utilise thi s sur un autre modèle et là ça marche bien. Peut-être que je dois aller chercher tout le graphe du tableau pour que cela fonctionne (j'ai un autre modèle dans une relation un à plusieurs)?
Je ne connais pas la doctrine 1, mais dans la doctrine 2, il n'y a pas de problèmes. – tomazahlin
Cette réponse a été écrite il y a plus de 7 ans :) –