Symfony / Doctrine:从processForm获取最后一个插入ID?(Symfony/Doctrine: Getting last insert id from processForm

编程入门 行业动态 更新时间:2024-10-25 10:28:47
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(...))。

How do I get the last insert ID after a process form request such as this one:

$this->form = new StudyPlanForm(); $this->processForm($request, $this->form);

I would use save() but I can't figure out a way to save without having to do $studyplan->setField($request->getParameter(...)) for every single field.

最满意答案

像这样改变你的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() }

Change your processForm function like this:

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; }

The save method returns the object persisted on db, so you can get the id from that. So you can do:

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

更多推荐

本文发布于:2023-08-06 00:44:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1442016.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:processForm   Doctrine   Symfony   id   insert

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!