Symfony2在一个动作中保存两个表单

时间:2016-06-10 10:50:24

标签: php mysql symfony

我是新的symfony,因此陷入了这个问题。

我在一次操作中保存了两种不同的表单。例如:首先我保存用户详细信息,而不是获取最后插入的ID以保存另一个细节,例如:用户小时。

我的第一个表单是插入,但第二个表单没有保存数据。这是我的代码:

IRelationalConnection

请给我解决方案的人。我从早上起就被困在这里。谢谢

3 个答案:

答案 0 :(得分:1)

请记住,您可以在另一个表单中嵌入表单。但首先,检查您的实体是否设计正确。第一个 - 你使用的是setter,而第二个是基于公共领域。

并且不使用ID进行连接 - 它不是Doctrine下的首选方式 - 更好地将这些实体关联起来并使用setUser方法UserWorkingHours进行<!-- Using Selenium IDE --> <tr> <td>storeAttribute</td> <td>//html@lang</td> <td>language</td> </tr> <tr> <td>echo</td> <td>The label is ${language}</td> <td></td> </tr> 。您必须使用密钥本身来管理所有内容。

了解学说基础知识。

答案 1 :(得分:0)

持续存在后始终刷新

$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();

我不知道你在用这些&#39;&#34;&#39;&#39;

应为$userWorkingHours->setDay($day);

答案 2 :(得分:0)

这是错误的

persist

$user->getId()方法只告诉学说“将此对象标记为稍后保存”,因此$em->flush()尚未有值。在尝试获取对象ID之前,必须先使用flush$userWorkingHours = new UserWorkingHours(); $userWorkingHours->setDay = '"' . $day . '"'; $userWorkingHours->setStartDay = '"' . $startDay . '"'; ... 方法实际上保存了实体。

而且......你想在这做什么?

setDay

不应该将setStartDaysetUserId作为方法吗?

我认为您的实体关系存在问题,您不应该有setUser,正确的方法必须是$userWorkingHours->setUser($user); 方法并调用它:

{{1}}