Bonjour,

Je débute sur CakePHP (v2), je comprends la couche MVC mais la documentation manque de certains exemples concrets et je bloque.
Je cherche à créer une vue (add.ctp) qui contiendrait deux formulaires en un. Par exemple une personne possède obligatoirement un profil et je voudrais que le formulaire enregistre les informations de la personne et du profil simultanément.
Merci.

3 réponses


Salut lynxfg,

Tu peux tout à fait faire ton/tes formulaires dans ta vue, faire le traitement avec le controller associé dans lequel tu appel un Model spécifique via la commande loadModel()

$this->loadModel('Article');

Pour en savoir plus,
Doc sur les Controller

Voir également La formation Cakephp de Graf' qui explique bien le fonctionnement du framework.

J'espère que ça a pu t'aider!

Bon dèv'

Il faut au préalable avoir définit des relations dans tes models :

Pour le model User

public $hasOne = array(
    'Profil' => array(
        'className' => 'Profil',
        'foreignKey => 'user_id',
    )
);

Pour le model Profil

public $belongsTo = array(
    'User' => array(
        'className' => 'User',
        'foreignKey => 'user_id',
    )
);

Ensuite dans ton formulaire du profil, il faut nommer tes inputs en les préfixant du nom du model auquel ils appartiennent :

echo $this->Form->input('User.id');
echo $this->Form->input('User.email');
echo $this->Form->input('Profil.avatar');
etc ...

Enfin, dans ton controller, tu fais un saveAssociated pour sauvegarder tes données dans tes 2 tables associées

http://book.cakephp.org/2.0/en/models/saving-your-data.html#model-saveassociated-array-data-null-array-options-array

@GyZmo: Merci pour les précisions, je suis pas un expert! ;) Ca méritais en effet d'être éclaicie!