Sunday, November 7, 2010

Last Insert Id of Embedded Form in Symfony

To get the last inserted id of an embedded form in symfony is pretty easy. But for that I had to search the internet whole day. So, I think I must share my experience with other people so, they can also know the ways to do that.

We know the code to embed form. It is simple.
$this->embedForm('billing', $billingform);
$this->embedRelation('CustomerToBill');    
Then when you are saving it, suppose, now you want to have the id of the embed form to use the value in another table with the same request.

Then you need to add the following in the form.
public function saveEmbeddedForms($con = null, $forms = null)
{
if (null === $con)
{
$con = $this->getConnection();
}

if (null === $forms)
{
$forms = $this->embeddedForms;
}

foreach ($forms as $form)
{
if ($form instanceof sfFormObject)
{
$form->saveEmbeddedForms($con);
$form->getObject()->save($con);
print_r($form->getObject()->getId());die();
}
else
{
$this->saveEmbeddedForms($con, $form->getEmbeddedForms());
}
}
}

To get the last insert id of the embed form I use
$form->getObject()->getId();
Thant's it.


See the book OpenCart 1.4 Template Design Cookbook.
See the book Joomla Mobile Development Beginners Guide