Bonjour à tous,

J'ai pour habitude créé un formulaire ainsi

<?php echo $this->Form->create('User',array('class'=>'navbar-form','novalidate')); ?>
<?php echo $this->Form->input('id'); ?>
<?php echo $this->Form->input('firstname',array('label'=>__("Prénom"),'class'=>'form-control input-sm')); ?>
<?php echo $this->Form->end('Sauver'); ?>

J'ai vu dans un autre code ceci

<?php echo $this->Form->input('Basket.firstname',array('label'=>__("Prénom"),'class'=>'form-control input-sm')); ?>

Pourquoi il y a le nasket avant le firstname?
Es-ce que c'est pour que ce champs soit sauvé dans la table basket?

Je pose la question ca je souhaite sauver les élément de mon formulaire qui on l'adresse de livraison et l'adresse de facturation

Es-ce que je peux alors fairr ainsi (bient entendu, je ne mets pas tout le formulaire)

<?php echo $this->Form->create('User',array('class'=>'navbar-form','novalidate')); ?>
<?php echo $this->Form->input('id'); ?>
<?php echo $this->Form->input('User.firstname',array('label'=>__("Prénom"),'class'=>'form-control input-sm')); ?>
<?php echo $this->Form->input('Userlivraison.firstname',array('label'=>__("Prénom"),'class'=>'form-control input-sm')); ?>
<?php echo $this->Form->end('Sauver'); ?>

Dans mon controler UserControler, comment dois-je le faire alors a l'étape de

$this->User->save($this->request->data)

2 réponses


Bonjour.
Le fait d'ajouter le nom du model en prefixage du nom du champ permet de définir le modèle concernant le champ, c'est d'ailleurs nécessaire comme dans ton cas pour sauvegarder des champs dans des tables différentes du modèle en cours.
Je te conseille de regarder la fonction saveAssociated.
Rien qu'avec le nom de la fonction tu devrais comprendre sa fonction, elle permet de sauvegarder des champs autant pour la table du modèle en cours mais également dans les tables des modèles liés au modèle courant.
Il faut bien sur avoir fait les relations des modèles auparavant.

D'accord merci! Je vais voir ca