我正在Symfony2
使用Doctrine 2
. 我的应用程序中有 5 个实体。
- 书
- 关键字(双向,应获取所有具有特定关键字的书籍)
- 作者(双向,应获取具有特定作者的所有书籍)
- 类别(双向,应获取属于特定类别的所有书籍)
BookExtra(单向,在 Book 实体中,应该获取 BookExtra 数据)
- 每本书可以有很多关键词
- 每本书可以有多个作者
- 每本书都可以归入一个类别
- 每本书都有一个 BookExtra 记录。
- 关键字和作者表应包含唯一值
添加新Book
的时,如果Author(s)
andKeyword(s)
存在,则尊重的Author ID
andKeyword ID
应分配给Book
,如果不存在,records
则将创建新的并将尊重ID
的分配给Book
.
我有以下内容Entity Classes
:
Book.php
namespace Acme\StoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Book
*
* @ORM\Table(name="book")
* @ORM\Entity
*/
class Book {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="isbn", type="string", length=16)
*/
protected $isbn;
/**
* @var string
*
* @ORM\Column(name="title", type="string", length=255)
*/
protected $title;
/*
* @ORM\OneToOne(targetEntity="BookExtra")
* @ORM\JoinColumn(name="extra_id", referencedColumnName="id")
*
* ********* OR *********
* *********What should go HERE*********
*
*/
protected $bookextra;
/*
* @ORM\ManyToMany(targetEntity="Author", inversedBy="books")
* @ORM\JoinTable(name="authors_books")
*/
protected $author;
/*
* @ORM\OneToOne(targetEntity="Category")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $category;
}
BookExtra.php
namespace Acme\StoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* BookExtra
*
* @ORM\Table(name="book_extra")
* @ORM\Entity
*/
class Detail {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="data", type="string", length=255)
*/
protected $data;
}
Author.php
namespace Bookhut\BookBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Author
*
* @ORM\Table(name="author")
* @ORM\Entity
*/
class Author {
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=100)
*/
protected $name;
// **********What should go HERE*********
protected $books;
}
Keyword
& Category
Entity 类似于 Author Entity
问题是,当我生成schema
时cli
,它永远不会生成Relationships/Associations
。
什么应该Relationships/Associations
适合Book & Author
实体
我搜索了这个问题并且正确Relationships/Associations
我找到了这个:
Symfony2 应用程序/控制台不为实体关系/关联生成属性或模式更新
但这对我没有帮助。
有人可以举一个这种类型Relationships/Associations
和insert
操作的例子吗?