我有一个故事表和用户表.故事表中的列userid是一个外键,它引用用户表中的id.
我设置的关系是用户可能有很多故事存储在故事表中.我已经创建了两个表的实体.
但是如果尝试仅将操作持久化到故事表,则会询问新用户输入的详细信息.
我的目标是添加一个现有的新故事userId.
我在这里发布错误:
通过关系"Story#_userId"找到了一个新实体,该关系未配置为对实体进行级联持久操作:User @ 0000000038960c50000000008ea93852.要解决此问题:在此未知实体上显式调用EntityManager#persist()或在映射中配置级联持久保存此关联,例如@ManyToOne(..,cascade = {\"persist \"}).
我在Story实体中设置了ManyToOne关系:
/**
* @ManyToOne(targetEntity="User", inversedBy = "_story" )
* @JoinColumns({
* @JoinColumn(name="user_id", referencedColumnName="id")
* })
*/
private $_userId;
Run Code Online (Sandbox Code Playgroud)
我检查了数据库架构,它显示了关系设置正确.所以我完成了故事插入过程.
$user = new User();
$user->setUserId($id);
$story = new Story();
$story->setContent("....");
$story->setUserid($user);
$this->em->persist($story);
$this->em->flush();
Run Code Online (Sandbox Code Playgroud)