小编sbi*_*sbi的帖子

主义多对一的关系坚持运作

我有一个故事表和用户表.故事表中的列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)

php mysql doctrine-orm

17
推荐指数
3
解决办法
3万
查看次数

标签 统计

doctrine-orm ×1

mysql ×1

php ×1