Php Symfony/条令:从processForm获取最后一个插入id?

Php Symfony/条令:从processForm获取最后一个插入id?,php,symfony1,doctrine,Php,Symfony1,Doctrine,如何在处理表单请求后获取最后一个插入ID,例如: $this->form = new StudyPlanForm(); $this->processForm($request, $this->form); 我会使用save,但如果不执行$studyplan->setField$request->getParameter,我就无法找到一种保存方法。。。对于每个字段。尝试: .. form processing .. $id = $this->form->getOb

如何在处理表单请求后获取最后一个插入ID,例如:

$this->form = new StudyPlanForm();

$this->processForm($request, $this->form);
我会使用save,但如果不执行$studyplan->setField$request->getParameter,我就无法找到一种保存方法。。。对于每个字段。

尝试:

.. form processing ..
$id = $this->form->getObject()->id;
更新:

只有当对象是sfFormObject的实例时,才可以从窗体中获取该对象。

请尝试:

.. form processing ..
$id = $this->form->getObject()->id;
更新:


只有当对象是sfFormObject的实例时,才可以从窗体中获取该对象。

更改processForm函数如下:

protected function processForm(sfWebRequest $request, sfForm $form)
{
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
      $obj = $form->save();
    }

    return $obj;
}
save方法返回保存在db上的对象,因此您可以从该对象获取id。因此,您可以:

$this->form = new StudyPlanForm();

$obj = $this->processForm($request, $this->form);
if ($obj != null){
    //do whatever you want like $obj->getId()
}

按如下方式更改processForm函数:

protected function processForm(sfWebRequest $request, sfForm $form)
{
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
    if ($form->isValid())
    {
      $obj = $form->save();
    }

    return $obj;
}
save方法返回保存在db上的对象,因此您可以从该对象获取id。因此,您可以:

$this->form = new StudyPlanForm();

$obj = $this->processForm($request, $this->form);
if ($obj != null){
    //do whatever you want like $obj->getId()
}