我在我的脚本中使用doctrine实体管理器,总是选择和更新工作,因此实体初始化正确:
$article = $entityManager->find('Models\Article', 5);
echo $article->getTitle();
or:
$article->setTitle('Updated!');
但是当我尝试创建/保存新元素然后分页时,代码为:
$item = new Article();
$item->setAuthorId(1);
$item->setTitle('Created item!');
$entityManager->persist($item);
$entityManager->flush();
它的创建方式与官方documentation page
相同我在这里做错了什么?
答案 0 :(得分:2)
似乎您无法指定对象与Author
实体的关系:
$item->setAuthorId(1);
可能是您的实体Article
与实体Author
有关系。在这种情况下,您应该有一个适当的setter方法(简单setAuthor(Author $author)
)来分配Author对象的引用。在这种情况下,您可以使用以下内容:
$item->setAuthor($entityManager->find('Models\Author', 1););
或更好
$item->setAuthor($entityManager->getReference('Models\Author', 1););
您还可以使用class
关键字引用类对象的简短方法,例如:
$item->setAuthor($entityManager->getReference(Author::class, 1););
希望这个帮助