学说2.1 - 实体插入

Krz*_*zos 3 php doctrine doctrine-orm

我有关于将实体插入数据库的问题.我有两个型号:

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;
    }

}
Run Code Online (Sandbox Code Playgroud)

要添加新消息,我必须包括两个UserNews类(如果它们位于单独的文件中,例如UserModel.php和NewsModel.php)并编写代码:

$news = new News()
$news->setTitle('TEST title');
$news->setAuthor($database->find('User', 1));
$database->persist($news);
Run Code Online (Sandbox Code Playgroud)

我的问题是:有没有办法插入新闻而不包括User课程?

tim*_*dev 7

您无需实际加载用户.

相反,您可以使用引用代理:

<?PHP
$news = new News()
$news->setTitle('TEST title');
$news->setAuthor($em->getReference('User',1));
$em->persist($news);
Run Code Online (Sandbox Code Playgroud)