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




List of my works:

Opencart Extensions:

  1. Product Based Quantity Wise Shipping: Find it here.
  2. OpenSSLCOMMERZ: integrate SSLCOMMERZ with opencart: Find it here.
  3. Fine Search v.1.0 - Improves Opencart search feature to find relevant: Find it here.
  4. Opensweetcaptcha - An easy way to generate attractive captcha for your system!: Find it here.
  5. Custom Field Product - add unlimited custom fields to the product form: Find it here.
  6. Formcaptcha - add captcha on the register page: Find it here.

My Books:

  1. OpenCart 1.4 Template Design Cookbook.
  2. Joomla Mobile Development Beginners Guide