繁体   English   中英

Symfony / Doctrine:从processForm获取最后的插入ID?

[英]Symfony/Doctrine: Getting last insert id from processForm?

在这样的流程表单请求之后,如何获取最后的插入ID:

$this->form = new StudyPlanForm();

$this->processForm($request, $this->form);

我会使用save(),但是我想不出一种不必对每个字段都执行$ studyplan-> setField($ request-> getParameter(...))的保存方法。

尝试:

.. 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()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM