如何在 Symfony2 中保存视图中的数据
Posted
技术标签:
【中文标题】如何在 Symfony2 中保存视图中的数据【英文标题】:How to save data from the view in Symfony2 【发布时间】:2013-11-21 13:00:40 【问题描述】:如何从 Symfony2 的视图中将数据保存在我的数据库中。
如果我有一个实体用户并且我使用:
$user->setInformation("Test");
该信息不存储在数据库中。
提前致谢
【问题讨论】:
【参考方案1】:您应该坚持并执行刷新以保存数据库中的更改。假设您使用 Doctrine ORM,下面的代码必须有效。
$user->setInformation("Test");
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
【讨论】:
谢谢,但在这种情况下我得到这个错误:调用未定义的方法 Symfony/.../getDoctrine() 记住,我是从视图中使用它,而不是从控制器中 你不应该在视图中做这样的逻辑【参考方案2】:视图不应包含实体持久性/保存逻辑。您应该只使用视图来表示您从控制器获得的数据。
$this->getDoctrine 是从 DI 容器中获取默认实体管理器的别名
所以
您应该检查您使用的是哪个学说实体管理器 确保您可以访问依赖注入容器。在控制器中,您可以使用 $this->get() 或 $this->getDoctrine() 因为容器已经在那里 设置字段 如果您创建新实体,您应该使用 $em->persist() 将其持久化 使用 $em->flush(); 刷新对数据库的更改【讨论】:
以上是关于如何在 Symfony2 中保存视图中的数据的主要内容,如果未能解决你的问题,请参考以下文章