Php 如何在symfony中插入具有多通关系的用户\u id?
来自yii的symfony非常新 我无法将用户id插入到另一个具有多人关系的表中。 当我获取要插入id的表的实体时,我使用:Php 如何在symfony中插入具有多通关系的用户\u id?,php,mysql,symfony,Php,Mysql,Symfony,来自yii的symfony非常新 我无法将用户id插入到另一个具有多人关系的表中。 当我获取要插入id的表的实体时,我使用: $en->setUser($user\u id) 结果是: SQLSTATE[23000]:完整性约束冲突:1048列“user\u id”不能为空 但是当我做var\u dump($user\u id)时有一个id。 那么,如何插入具有多对一关系的用户id呢 [更新] 表用户实体 确保已正确定义关系。如果使用yml配置文件定义实体, 多对一关系的配置如下所示 manyT
$en->setUser($user\u id)代码>
结果是:
SQLSTATE[23000]:完整性约束冲突:1048列“user\u id”不能为空
但是当我做var\u dump($user\u id)时代码>有一个id。
那么,如何插入具有多对一关系的用户id呢
[更新]
表用户实体
确保已正确定义关系。如果使用yml配置文件定义实体,
多对一关系的配置如下所示
manyToOne:
user:
targetEntity: Your\NameSpace\Entity\User
joinColumn:
name: user_id
referencedColumnName: id
如果使用注释定义关系
/**
* @ManyToOne(targetEntity="Your\NameSpace\Entity\User")
* @JoinColumn(name="user_id", referencedColumnName="id")
**/
private $user;
以及实体中的setUser方法
/**
* Set user
*
* @param Blsk\CoreBundle\Entity\User $user
*/
public function setUser(Your\NameSpace\Entity\User $user = null)
{
$this->user = $user;
}
编辑
在代码中,setUser
方法不是设置用户,而是返回用户
$en->setUser($User); // $User is object
或
显示两个相关的实体请您能分享您声明关系的代码(yml文件或注释?哦,谢谢。我想我遗漏了第一部分。这是在config.yml下吗?(对不起,没有问题)。每次有多对一(多)时,它必须是配置的吗关系?因为您使用的是批注,所以这不是必需的。我在您发布代码之前发布了答案。请放弃第一部分。您可以使用批注或yml文件来指定模型结构和关系。无需同时使用两者。
/**
* @ManyToOne(targetEntity="Your\NameSpace\Entity\User")
* @JoinColumn(name="user_id", referencedColumnName="id")
**/
private $user;
/**
* Set user
*
* @param Blsk\CoreBundle\Entity\User $user
*/
public function setUser(Your\NameSpace\Entity\User $user = null)
{
$this->user = $user;
}
$en->setUser($User); // $User is object
$en->setUser($em->getReference('User\Bundle\RegisterBundle\Entity\User', $user_id)); // $user_id is integer, $em is EntityManager