Hi all,

I'm loosing my hair on this one, I have succesfully nested forms before but
this case is a bit specific. I only have this problem with Doctrine, I works
fine with Propel.

Here is my data model: I have a parent class "Product" and 2 child class
"Book" and "Video"
the primary key of the 2 children is also the foreign key (referencing their
parent) so it does not auto increment.

The "parent" object:

Product:
  columns:
    id:
      type: integer
      primary: true
      autoincrement: true
    type: string(20)
    title: string(255)

The "child" objects:

Book:
  columns:
    product_id:
      type: integer
      primary: true
    type: string(20)
    editor: string(60)
    pages: integer(4)
  relations:
    Product:
      local: product_id
      foreign: id
      type: one
      foreignType: one

Video:
  columns:
    product_id:
      type: integer
      primary: true
    format: string(20)
    editor: string(60)
    length: integer
  relations:
    Product:
      local: product_id
      foreign: id
      type: one
      foreignType: one

I want to nest the correct child form in the parent form, depending on the
parent type value (book or video).

when I create a new product, my executeNew gives it a type (either book or
video)
in the ProductForm, I embed a child form depending on this type by using a
getChildForm() function I made.
$this->embedForm('child', $this->getChildForm());

the nesting works (the correct nested form appears)

I overwrote the ProductForm::bind() function to add this line:

$this->embeddedForms['child']->getObject()->setProduct($this->getObject());

this is supposed to link the child object (from the embedded form) to its
parent object (the main form).

but when I save a new product, the child object is not linked to the parent
Product and I get a null primary key SQL error (Doctrine tries to save my
child object with a null product_id).

When I update a product which already has a child form, everything works
fine... (the correct nested form appears with the data and everything is
succesfully saved)

Any idea anyone?

If you need more details on my code I'll post it, I didn't want to scare
people away by dumping all my code... I hope I'm just missing something
obvious...

Thanks a lot!

Raphael

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to