我只是使用教义的初学者。
我有2个表,书和章
BOOK[ BID, NAME ]
CHAPTER[ CID, BID, ChapName ]
章课:
/**
* @Id
* @Column(type="bigint", nullable=false)
* @GeneratedValue(strategy="AUTO")
*/
private $cid;
/**
* @ManyToOne(targetEntity="Book", inversedBy="Chapters")
* @var Book
*/
private $Book;
书籍课程:
/**
* @Id
* @Column(type="bigint", nullable=false)
* @GeneratedValue(strategy="AUTO")
*/
private $bid;
/**
* @OneToMany(targetEntity="Chapter", mappedBy="Book", cascade={"persist", "remove", "merge"}, orphanRemoval=true))
* @var Chapter[]
*/
private $Chapters;
我不确定它是否正确,但是当我尝试查询章节以获取章节ID时1.这是错误:
Unknown column 't0.Book_id' in 'field list''
但如果我尝试调用“$ book-> getChapters() - > first() - > getChapName()”。我得到了ff。错误:
A PHP Error was encountered
Severity: Notice
Message: Undefined index: id
Filename: Persisters/BasicEntityPersister.php
Line Number: 1193
可能是什么问题,因为我很困惑。
谢谢
答案 0 :(得分:2)
你必须在$ Book上使用@JoinColumn。 这是必需的,因为您不使用默认列名。
代码:
/**
* @ManyToOne(targetEntity="Book", inversedBy="Chapters")
* @JoinColumn(name="BID", referencedColumnName="cid")
* @var Book
*/
private $Book;
以下是关于与学说的映射的整个文档: http://www.doctrine-project.org/docs/orm/2.0/en/reference/association-mapping.html