双向一对多

时间:2011-11-11 09:19:22

标签: php codeigniter doctrine-orm

我正在尝试在Doctrine 2.1中创建双向一对多关系。我将我的代码与manual和其他examples进行了比较,但仍然看不出我做错了什么。我只得到一个空白的屏幕,所以很难调试。 (log_threshold = 4但日志中没有错误。)

我有两张桌子:

用户

id
name

id
items

以下是我的两个模型(简称):

/**
 * @Entity
 * @Table(name="user")
 */
class User
{
    /**
     * @Id
     * @Column(type="integer", nullable=false)
     * @GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @OneToMany(targetEntity="Cart", mappedBy="user_id")
     */
    private $carts;
}

/**
 * @Entity
 * @Table(name="cart")
 */
class Cart
{
    /**
     * @Id
     * @Column(type="integer", nullable=false)
     * @GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ManyToOne(targetEntity="User", inversedBy="carts")
     */
    private $user;
}

然后我尝试链接他们

$user = $this->em->find('models\User', 8);

$cart = new models\Cart();
$user->getCarts()->add($cart);
$cart->setOwner($user);

$this->em->persist($cart);
$this->em->flush();

这里我得到一个空白屏幕。 没有一对多,它可以正常工作。

1 个答案:

答案 0 :(得分:0)

好的,我自己弄清楚了。诀窍是显示错误消息:

error_reporting(E_ALL);
ini_set('display_errors', '1');

我需要用值填充一些字段。不允许为空。 DOH!