Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在symfony中插入具有多通关系的用户\u id?_Php_Mysql_Symfony - Fatal编程技术网

Php 如何在symfony中插入具有多通关系的用户\u 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

来自yii的symfony非常新

我无法将用户id插入到另一个具有多人关系的表中。 当我获取要插入id的表的实体时,我使用:
$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