Orm 原则3:一对一单向关系不';t返回所有字段
我有两个实体:论文和DoList 每一篇论文都属于0篇或1篇论文。因此,我们有一个单向的一对一的关系,从杜立斯特到论文。这是一篇论文:Orm 原则3:一对一单向关系不';t返回所有字段,orm,doctrine,Orm,Doctrine,我有两个实体:论文和DoList 每一篇论文都属于0篇或1篇论文。因此,我们有一个单向的一对一的关系,从杜立斯特到论文。这是一篇论文: class Thesis { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue * @var int */ protected int $thesisID; 和DoList: /**
class Thesis
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue
* @var int
*/
protected int $thesisID;
和DoList:
/**
* @ORM\OneToOne(targetEntity="Thesis")
* @ORM\JoinColumn(name="thesisID", referencedColumnName="thesisID", nullable=true)
*/
protected $thesisID;
当然,我减少了课程,只展示了重要的部分
据我所知@ORM\JoinColumn应连接DoList表和DoList表
多利斯特。塞西德和论文。塞西德
我可以在这个关系中持久化sesid但是当从DoList中选择所有值时,我无法检索sesid的值它总是空的
编辑:
列名的两边都必须是seid。错误在于我在使用查询生成器时没有连接表。 我认为,当使用查询生成器执行查询并从表中选择所有行时,将读取我在模型上指定的关系,并自动执行联接查询 注意:当您在模型上指定该选项时,条令不会自动联接表。您需要在QUERYBUILDER上执行连接功能。 这就是它最终的工作原理。(我刚刚添加了加入选项。)
$qb->select(['u', 'c'])
->from('ThesisNET\Models\DoList', 'u')
->join('u.thesisID', 'c')
->where('u.instructor = ?1')
->setParameter('1', $username);