【问题标题】:Symfony2 doctrine relation dataSymfony2 学说关系数据
【发布时间】:2015-04-07 09:35:49
【问题描述】:

我在教义映射方面有一些小错误。我已经从控制台生成实体和映射数据,当我尝试获取相关列数据时,它设置为 null,我不知道为什么

实体:

TasksCaregories:

/**
     * @var \PhpTasksBundle\Entity\Tasks
     *
     * @ORM\OneToOne(targetEntity="PhpTasksBundle\Entity\Tasks")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id", referencedColumnName="category_id", unique=true)
     * })
     */
    private $id;

任务:

/**
     * @var \PhpTasksBundle\Entity\TasksCategories
     *
     * @ORM\ManyToOne(targetEntity="PhpTasksBundle\Entity\TasksCategories")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="category_id", referencedColumnName="id")
     * })
     */
    private $category;

控制器:

$tasks = $this->getDoctrine()
            ->getRepository('PhpTasksBundle:Tasks')
            ->findAll();

查看:

{{转储(任务)}}

我在相关数组中得到空的“名称”列。

但我不需要从类别中获取船体名称:(请有人帮忙

【问题讨论】:

  • 为什么 Tasks 与 category 是 OneToOne 关系?
  • 从控制台生成的。我不知道:(。必须是一对多
  • 您的实体之间的关系是ManyToMany。单向还是双向,由你决定。

标签: php mysql sql symfony doctrine-orm


【解决方案1】:

对 Taks -> TasksCategories 之间的 ManyToOne 关系有好处(这意味着一个类别可能有许多不同的任务(绝对逻辑):

/**
 * @var \PhpTasksBundle\Entity\TasksCategories
 *
 * @ORM\ManyToOne(targetEntity="PhpTasksBundle\Entity\TasksCategories")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="category_id", referencedColumnName="id")
 * })
 */
private $category;

因此,相反,TasksCategories -> Tasks 的关系可以是:OneToMany 或 ManyToMany,根据您的需要。

例如:您希望一个任务可以附加到多个类别 (ManyToMany),如果不是,则一个任务 -> 只是一个类别 (OneToMany)。我希望你清楚。

【讨论】:

    猜你喜欢
    • 2017-01-22
    • 1970-01-01
    • 2013-12-01
    • 2014-09-29
    • 2011-09-02
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多