Embed Form Foreign key
Bonjour je tente de faire un form embed dans sf_guard_user pour un système d'inscription. Voilà le code de mon action :
$this->form = new sfGuardRegisterForm();
$this->form->embedForm('profile',new ProfileForm());
/* Si l'action est appelé via la méthode POST... */
if ($request->isMethod('post')) {
$this->form->bind($request->getParameter('sf_guard_user'));
/* ...et que les données sont valides */
if ($this->form->isValid())
{
et voici mon schema du profile
Profile:
tableName: sf_guard_user_profile
columns:
id:
type: integer(4)
primary: true
autoincrement: true
user_id:
type: integer(4)
notnull: true
email:
type: string(255)
notnull: true
relations:
sfGuardUser:
local: user_id
foreign: id
foreignType: one
onDelete: CASCADE
En faite à chaque fois que je valide le formulaire il me dit que l'user id (du profile) est requis. Mais le problème c'est qu'il se créer en même temps qu'on enregistre le formulaire. Donc comment faire?? Merci
PS: j'ai fais des recherches et j'ai trouvé 3 topics avec le même problème mais sans réponse!
Merci ;))
Réponses apportées à cette discussion
D'ailleurs je me demande si c'est la bonne solution d'utiliser un embed.
C'est peut-être mieux de faire deux form. Un user et un profileUser.
On enregistre le formulaire user, puis on récupère l'id créer et on enregistre le profileUser avec l'id de l'user fraîchement récupéré.
Nota Bene : En réfléchissant on se rend compte que dès qu'un user est créé il a un profil de créer donc la clé étrangère n'est pas très utile :p.
Merci de me guider ^^!!