我对将实体插入数据库有疑问。我有两个模型:
class News {
/**
* @Column(type="string", length=100)
* @var string
*/
protected $title;
/**
* @ManyToOne(targetEntity="User", inversedBy="news")
* @JoinColumn(referencedColumnName="id")
*/
protected $author;
}
class User {
/**
* @Id @GeneratedValue @Column(type="integer")
* @var integer
*/
protected $id;
/**
* @OneToMany(targetEntity="News", mappedBy="author")
*/
protected $news;
public function __construct() {
$this->news = new \Doctrine\Common\Collections\ArrayCollection;
}
}
要添加新新闻,我必须包括 User
和 News
类(如果它们在单独的文件中,例如 UserModel.php 和 NewsModel.php)和写一段代码:
$news = new News()
$news->setTitle('TEST title');
$news->setAuthor($database->find('User', 1));
$database->persist($news);
我的问题是:有没有办法不包含 User
类就可以插入新闻?
最佳答案
您不需要实际加载用户。
相反,您可以使用 reference proxy :
<?PHP
$news = new News()
$news->setTitle('TEST title');
$news->setAuthor($em->getReference('User',1));
$em->persist($news);
关于php - Doctrine 2.1 - 实体插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8703102/