我在脚本中使用Doctrine Entity Manager,选择和更新始终工作,因此Entity Manager可以正确初始化:
$article = $entityManager->find('ModelsArticle', 5);
echo $article->getTitle();
or:
$article->setTitle('Updated!');
但是,当我尝试创建/保存新元素时,页面断开时,代码为:
$item = new Article();
$item->setAuthorId(1);
$item->setTitle('Created item!');
$entityManager->persist($item);
$entityManager->flush();
它是在官方文档页面上创建的
我在这里做错了什么?
似乎您无法指定对象与Author
实体的关系:
$item->setAuthorId(1);
您的实体Article
可能与实体Author
有关系。在这种情况下,您应该具有适当的设置方法(简单的setAuthor(Author $author)
),该方法分配了作者对象的引用。在这种情况下,您可以使用以下内容:
$item->setAuthor($entityManager->find('ModelsAuthor', 1););
或更好的
$item->setAuthor($entityManager->getReference('ModelsAuthor', 1););
您也可以使用一种用class
关键字引用类对象的简短方法,例如:
$item->setAuthor($entityManager->getReference(Author::class, 1););
希望此帮助