php - 具有连接列插入空值的Doctrine 2实体

原文 标签 php doctrine-orm zend-framework2

很可能我做错了什么,但我有一个类似的实体,当插入时,会为其user_id列插入NULL(尽管我进行了设置)。

/**
 * @ORM\Entity
 * @ORM\Table(name="sales_contacts_tags")
 */
class SalesContactTag
{

    /**
     * @ORM\Id
     * @ORM\Column(type="integer");
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;


    /**
     * @ORM\Column(type="integer");
     */
    protected $user_id;

    /**
     * @ORM\Column(type="integer");
     */
    protected $sales_contact_id;


    /**
     * @ORM\Column(type="datetime");
     */
    protected $time_recorded;


    /**
     * @ORM\Column(type="string");
     */
    protected $type;


    /**
     * @var \Foo\Entity\User $user
     * @ORM\OneToOne(targetEntity="Foo\Entity\User", fetch="EAGER")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=false)
     */
    protected $user;

    /**
     * @param mixed $id
     */
    public function setId($id)
    {
        $this->id = $id;
    }

    /**
     * @return mixed
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @param mixed $sales_contact_id
     */
    public function setSalesContactId($sales_contact_id)
    {
        $this->sales_contact_id = $sales_contact_id;
    }

    /**
     * @return mixed
     */
    public function getSalesContactId()
    {
        return $this->sales_contact_id;
    }

    /**
     * @param mixed $time_recorded
     */
    public function setTimeRecorded($time_recorded)
    {
        $this->time_recorded = $time_recorded;
    }

    /**
     * @return mixed
     */
    public function getTimeRecorded()
    {
        return $this->time_recorded;
    }

    /**
     * @param mixed $type
     */
    public function setType($type)
    {
        $this->type = $type;
    }

    /**
     * @return mixed
     */
    public function getType()
    {
        return $this->type;
    }

    /**
     * @param mixed $user_id
     */
    public function setUserId($user_id)
    {
        $this->user_id = $user_id;
    }

    /**
     * @return mixed
     */
    public function getUserId()
    {
        return $this->user_id;
    }

    /**
     * @param \LaunchfireUser\Entity\User $user
     */
    public function setUser($user)
    {
        $this->user = $user;
    }

    /**
     * @return \LaunchfireUser\Entity\User
     */
    public function getUser()
    {
        return $this->user;
    }

}


当我获取这些实体之一时,一切都很好。多个关系实体按预期方式列出。但是,当我插入时,user_id列为null。

有任何想法吗?

与往常一样感谢您的帮助。

最佳答案

您的user_iduser字段彼此冲突,因为它们都被键入到“ user_id”数据库字段。最好的选择是删除user_id字段并在持久之前调用setUser()

相关文章:

php - 使用Bisna / Doctrine2处理封闭的EntityManager

mysql - 在应用程序中混合使用MySQL和Mongodb

mysql - 使用Zend Framework 2 TableGateway加入子查询

php - 如何检测Zend Framework 2应用程序是否在控制台或HTTP上下文中运行?

php - jQuery + PHP如何在我的数据对象中返回多个值?

security - 实体提供者:尚未为帐户配置编码器

php - 数据更新时更新时间戳,但更新后到达率计数时不更新时间戳

php - ZF2-在调度侦听器中设置cookie

php - 可以打破sha1(md5('密码'))密码?

php - 为什么我无法获得此文本区域的价值?