Bonjour,
J'aimerais savoir comment modifier la valeur d'un champ selon le nom de l'utilisateur.
Voici mon code :
$user_name = $this->Auth->user('username');
if($this->request->is('post') || $this->request->is('put') )
{
$user = $this->Profil->find('first',array('conditions' => array('username' => $user_name)));
if(!empty($user))
{
// Ici, c'est quand l'utilisateur existe deja et que qu'il souhaite modifier des champs.
$this->Profil->username = $user_name;
$this->request->data = array('username' => $user_name);
$this->Session->setFlash("Le CV a bien été modifié","notif");
$this->redirect(array('action'=>'view/'.$user_name));
}else{
$d = $this->request->data;
$this->Profil->save($d,true,array('firstname','lastname'));
$this->Profil->saveField('username',$user_name);
$this->Session->setFlash("Le CV a été créé","notif");
}
}
elseif($id)
{
$this->Profil->id = $id;
$this->request->data = $this->Profil->read('firstname, lastname');
}
Le probleme c'est qu'il crée une nouvelle ligne, au lieu de modifier celle qui existe déjà.
Comment je pourrais m'y prendre?
Merci!
ok, quand tu dis que je dois envoyer l'ID, C'est à dire l'id de "Auth"?
Car j'ai deux tables : user et profil.
et l'id de "Auth" n'est pas le même que son id dans la table profil.
Exemple :
2 Tables : User -> id:02 username:Bernard pwd:coco
Profil -> id:24 username:Bernard firstname:tata
Et j'aimerais modifier la table Profil selon son username.
Comment envoyer dans le save(), l'username?
Merci!
salut, Pourquoi deux tables ?
Personnellement j'ai une table User dans laquel je met tous le profil de mon user dans cette même table.
je pense que ton soucis serait résolu si tu n'utilisais qu'une seule table. Pas besoin de liaison.
Ne crois tu pas ?
Si tu as une liaison entre une table profil et users, il faudrait surement utiliser saveAll au lieu de save non ?
http://book.cakephp.org/2.0/en/models/data-validation/validating-data-from-the-controller.html