如何在流程表单请求之后获取最后一个插入ID,例如:
$this->form = new StudyPlanForm();
$this->processForm($request, $this->form);
我会使用save(),但我不知道如何保存而无需为每个字段执行$ studyplan-> setField($ request-> getParameter(...))。
答案 0 :(得分:3)
尝试:
.. form processing ..
$id = $this->form->getObject()->id;
更新
只有当表单是sfFormObject
的实例时,才可以从表单中获取对象。
答案 1 :(得分:3)
更改您的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()
}