【问题标题】:Multiple Databases configuration in doctrine symfony教义 symfony 中的多个数据库配置
【发布时间】:2015-10-13 13:23:16
【问题描述】:

保存实体时出现以下异常。(在 config.yml 文件中配置的数据库名称。)

[{"message":"通过关系发现了一个新实体 'Seal\MdBundle\Entity\MdJournal#user' 未配置为 实体的级联持久化操作:测试。明确坚持 新实体或在 关系。如果您无法找出导致问题的实体 执行 'Seal\OAuthServerBundle\Entity\User#__toString()' 来获取 一条线索。","class":"InvalidArgumentException" ,"exceptionClassName":"InvalidArgumentException"}]

【问题讨论】:

  • 要么坚持并刷新user 或级联它们。我认为多个对象管理器没有问题。

标签: php symfony doctrine-orm


【解决方案1】:

在 MdJournal 之前保留您的实体用户。

$user = new User();
$mdJournal = new MdJournal();
$mdJournal->setUser($user);
$em1 = $this->getDoctrine()->getEntityManager("db1")
$em2 = $this->getDoctrine()->getEntityManager("db2")
$em1->persist($user);
$em2->persist($mdJournal);
$em1->flush();
$em2->flush();

或添加到 OneToMany 关系

* @ORM\OneToMany(targetEntity="MdJournal", mappedBy="user", cascade={"all"})

【讨论】:

  • 我使用了 cascade={"all"}..之后我得到了以下异常。 [{"message":"Class Proxies\\SealOAuthServerBundleEntityRoleProxy 不是有效的实体或映射的超类。","class":"Doctrine\\ORM\\Mapping\\MappingException","exceptionClassName":"Doctrine\\ORM \\Mapping \\MappingException"}]
  • php 应用程序/控制台原则:缓存:clear-metadata & php 应用程序/控制台原则:模式:验证
  • 对于单个数据库配置,它工作正常,基于用户相关的数据,我正在传输到其他数据库(config.yml 中的数据库详细信息)。在 php 代码中 -$this->getDoctrine()-> getEntityManager("db");
猜你喜欢
  • 1970-01-01
  • 2014-10-14
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
  • 2014-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多