我想创建一个表格来列出我的书。我定义了字段,但由于某种原因它正在创建外键,我不明白。为什么会这样?
控制台日志:
C:xampphtdocstest2>php appconsole doctrine:schema:update --dump-sql
ALTER TABLE 2_00_book CHANGE kword kword integer unsigned, CHANGE page page integer unsigned;
ALTER TABLE 2_00_book ADD CONSTRAINT FK_96339B585E9E89CB FOREIGN KEY (location)REFERENCES 2_08_location (id);
ALTER TABLE 2_00_book ADD CONSTRAINT FK_96339B589CE8D546 FOREIGN KEY (publisher) REFERENCES 2_07_publisher (id);
ALTER TABLE 2_01_book ADD CONSTRAINT FK_5D6F48FD36BB5955 FOREIGN KEY (bookid) REFERENCES 2_00_book (id);
ALTER TABLE 2_02_review ADD CONSTRAINT FK_A75BB31DD4E70683 FOREIGN KEY (headlineid) REFERENCES 2_01_book (id);
ALTER TABLE 2_04_taglist ADD CONSTRAINT FK_6AB8110436BB5955 FOREIGN KEY (bookid) REFERENCES 2_00_book (id);
C:xampphtdocstest2>php appconsole doctrine:schema:update --force
Updating database schema...
[DoctrineDBALExceptionDriverException]
An exception occurred while executing 'ALTER TABLE 2_00_book ADD CONSTRAINT FK_96339B585E9E89CB FOREIGN KEY (location) REFERENCES 2_08_location (id)':
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint
这是导致错误的实体:
class Book
{
/**
* @var integer
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORMColumn(name="title", type="string", length=200, options={"fixed":false}, nullable=false)
*/
private $title;
/**
* @var string
*
* @ORMColumn(name="author", type="string", length=200, options={"fixed":false}, nullable=false)
*/
private $author;
/**
* @var string
*
* @ORMColumn(name="region", type="string", length=40, options={"fixed":false}, nullable=false)
*/
private $region;
/**
* @var string
*
* @ORMColumn(name="copyrighter", type="string", length=100, options={"fixed":false}, nullable=false)
*/
private $copyrighter;
/**
* @var boolean
*
* @ORMColumn(name="translated", type="boolean", nullable=false)
*/
private $translated;
/**
* @var DateTime
*
* @ORMColumn(name="purchdate", type="date", nullable=false)
*/
private $purchdate;
/**
* @var float
*
* @ORMColumn(name="price", type="float", nullable=false)
*/
private $price;
/**
* @var DateTime
*
* @ORMColumn(name="pubdate", type="date", nullable=false)
*/
private $pubdate;
/**
* @var DateTime
*
* @ORMColumn(nullable=false)
*/
private $printdate;
/**
* @var string
*
* @ORMColumn(type="string", length=5, options={"fixed":false}, nullable=false)
*/
private $ver;
/**
* @var string
*
* @ORMColumn(type="string", length=6, options={"fixed":false}, nullable=false)
*/
private $deco;
/**
* @var integer
*
* @ORMColumn(columnDefinition="integer unsigned", nullable=false)
*/
private $kword;
/**
* @var integer
*
* @ORMColumn(columnDefinition="integer unsigned", nullable=false)
*/
private $page;
/**
* @var string
*
* @ORMColumn(type="string", length=17, options={"fixed":false}, nullable=false)
* @ORMOneToMany(targetEntity="Taglist", mappedBy="bookid")
* @ORMOneToMany(targetEntity="Headline", mappedBy="bookid")
*/
private $isbn;
/**
* @var string
*
* @ORMColumn(type="string", length=12, options={"fixed":false}, nullable=false)
*/
private $category;
/**
* @var string
*
* @ORMColumn(type="string", length=2, options={"fixed":false}, nullable=false)
*/
private $location;
/**
* @var string
*
*@ORMColumn(name="intro", type="text", nullable=false)
*/
private $intro;
/**
* @var boolean
*
* @ORMColumn(name="instock", type="boolean", nullable=false)
*/
private $instock;
/**
* @var BooksBooksBundleEntityLocation
*
* @ORMManyToOne(targetEntity="Location", inversedBy="name", cascade={})
* @ORMJoinColumn(name="location", referencedColumnName="id")
*/
private $place;
/**
* @var BooksBooksBundleEntityPublisher
*
* @ORMManyToOne(targetEntity="Publisher", inversedBy="name", cascade={})
* @ORMJoinColumn(name="publisher", referencedColumnName="id")
*/
private $publisher;
//setters and getters
我在另一个实体中引用了导致错误的该实体的OneToMany。我有一个错别字错误,所以引用是错误的。希望这对其他人来说安全一些时间。