Php 不同的外键和学说中的多通

Php 不同的外键和学说中的多通,php,codeigniter,doctrine,Php,Codeigniter,Doctrine,我只是一个使用教义的初学者 我有两张桌子、一本书和两个章节 BOOK[ BID, NAME ] CHAPTER[ CID, BID, ChapName ] 章节类别: /** * @Id * @Column(type="bigint", nullable=false) * @GeneratedValue(strategy="AUTO") */ private $cid; /** * @ManyToOne(targetEntity="Book", inversedBy="Chapter

我只是一个使用教义的初学者

我有两张桌子、一本书和两个章节

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()”。我得到了那份工作。错误:

A PHP Error was encountered

Severity: Notice

Message: Undefined index: id

Filename: Persisters/BasicEntityPersister.php

Line Number: 1193
有什么问题,因为我很困惑


谢谢

您必须使用$Book上的@join列。 这是必需的,因为您不使用默认列名

代码:

以下是关于使用条令映射的完整文档:

/**
 * @ManyToOne(targetEntity="Book", inversedBy="Chapters")
 * @JoinColumn(name="BID", referencedColumnName="cid")
 * @var Book
 */
private $Book;