小编Phi*_*ton的帖子

教义一对多关系不会挽救 - 诚信约束违规

我正在尝试使用Doctrine ORM Associations.我已经阅读了几个教程和在线文档,但它不起作用,我老实说不确定我在这里做错了什么.似乎我对Doctrine的实验非常受欢迎.任何援助将不胜感激.

我想要一个User实体和UserHistory实体,它有一个用户的多行.那对我来说听起来像一对多.我不一定需要它是双向的.

我遇到的问题是向用户添加历史记录项会在保存用户时导致错误,因为user_id列未在user_history表中设置.

实体:

# Entity\User.php
<?php
namespace Application\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

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

    /**
     * @ORM\Column(type="string",length=255)
     */
    protected $username;

    /**
     * @ORM\OneToMany(targetEntity="UserHistory", mappedBy="user", cascade={"persist","remove"})
     * @ORM\JoinColumn(name="id", referencedColumnName="user_id")
     */
    protected $history;

    public function __construct()
    {
        $this->setHistory(new ArrayCollection());
    }

    public function getHistory()
    {
        return $this->history;
    }
}

# Entity\UserHistory.php
<?php
namespace Application\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="user_history") …
Run Code Online (Sandbox Code Playgroud)

php doctrine-orm zend-framework2

8
推荐指数
1
解决办法
2698
查看次数

标签 统计

doctrine-orm ×1

php ×1

zend-framework2 ×1