我在学说映射方面有些错误。我有来自控制台的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)。对你来说清楚吗?