Bonjour,

J'utilise Cakephp 1.1.18 depuis deuxsemaines maintenant et j'ai un
soucis de compréhension sur l'utilisation des Models lorsuq'ils sont
reliés.
Mon problème est le suivant, j'ai une table 'users' en relation avec
une table 'contacts'.
Lorsque j'ajoute un 'user' j'aimerais enregistrer les informations du
contact dans le même temps et valider ces dernières.

Dans le Model User:

class User extends AppModel{
        var $name = 'User';
        var $belongsTo = array('Group','Contact');

        var $validate = array(
        'username'  => '/[a-z0-9\_\-]{3,}$/i',
        'password'  => VALID_NOT_EMPTY,
    );
}

Dans le Model Contact:
class Contact extends AppModel{
        var $name = 'Contact';
        var $hasOne = array('User');

         var $validate = array(
        'name'  => VALID_NOT_EMPTY,
        'email'  => VALID_EMAIL,
        'phone'   => VALID_NOT_EMPTY
    );
}

Dans l'action Add() de mon UsersController j'ai mis ceci:

function add()
{
[...]
if ($this->User->Contact->save($this->data['Contact']) && $this->User-
>save($this->data['User']))
{
    $this->Session->setFlash($this->data['User']['username'] . " has
been saved.");

    if(!empty($this->params['form']['apply']))
    {
         $this->redirect('/users/edit/' . $this->User-
>getLastInsertById());
    }
    else
    {
        $this->redirect('/users');
    }
}
else
{
    $this->Session->setFlash("Please correct errors below.");
}
}

La validation fonctionne bien, j'entends par là que rien ne
s'enregistre si je n'ai pas renseigné tous les champs obligatoires
mais lorsque tout est renseigné correctement le controller
n'enregistre que les données ['User'] et pas celle du contact.

Je suppose que je suis passé à côté de quelquechose, mais quoi? Il y a
encore beaucoup de méthodes et de fonctions qui reste obscure, peut-
être l'une d'entre elle permet de faire ça.

Merci d'avance.

Passez tous une bonne journée et bon courage pour le projet CakePHP-
fr. A ce sujet je peux participer à la traduction, modestement pour
les 2 prochains mois, mais je serais ravi de m'investir plus à
l'avenir quelquesoit le domaine (écriture d'article, traductions,
développement, communication...). Je devrais peut-être poster ce
message dans la discussion approprié, non?

Sur ce, a bientôt.
--~--~---------~--~----~------------~-------~--~----~

Groupe "Cakephp-fr".
Adresse : [email protected]
Pour résilier  : [EMAIL PROTECTED]
Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à