我在学说映射方面有些错误。我有来自控制台的genarate实体和映射数据,当我尝试获取相关的列数据时将其设置为null,我不知道为什么

实体:

任务任务

/**
     * @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();


视图:

{{dump(tasks}}}

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

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

最佳答案

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)。对你来说清楚吗?

10-02 05:47
查看更多