[英]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.