【问题标题】:One to Many Relation In Doctrine教义中的一对多关系
【发布时间】:2013-10-08 05:38:27
【问题描述】:

我有两张桌子

  1. 用户
  2. 消息

以及表的结构:

用户:

消息:

现在看到 Users Table 中有许多用户,他们的消息存储在 Messages table 中,由fk_user_Id 标识。

如何在这两个表之间建立一对多关系或使用Doctrine/Annotations 创建此SQL Schema?

【问题讨论】:

标签: php symfony doctrine-orm annotations doctrine


【解决方案1】:

这是一种常见的情况,我认为如果您搜索过,您可以轻松找到此类示例。

你可以参考这个example

您的两个实体文件 User.phpMessage.php 看起来像这样

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

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

    /**
     * @ORM\OneToMany(targetEntity="Message", mappedBy="user")
     */
    protected $messages;
}

消息实体将如下所示

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

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

        /**
         * @ORM\ManyToOne(targetEntity="User", inversedBy="messages")
         * @ORM\JoinColumn(name="fk_user_id", referencedColumnName="id")
         */
        protected $user;
}

【讨论】:

  • 非常感谢它对我有用。你也可以参考我如何执行插入操作吗?
  • 我在答案中给出的示例链接逐步指导几乎所有基本操作。即使是官方的 symfony 文档也足以让你完成这些简单的任务
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-29
相关资源
最近更新 更多