Symfony Doctrine2与不存在实体的多对一关联

Symfony Doctrine2与不存在实体的多对一关联,symfony,doctrine-orm,Symfony,Doctrine Orm,我的数据库中有类似wiki的文章。他们已经给出了id,没有生成。文章可以有到其他文章的链接。可以链接到尚不存在的文章 我在这个项目中没有使用任何orm。这是我学会如何编码的时候。。。没有问题。我刚刚执行了select with join,当没有目标文章时,它的行为就好像有null一样 然后我转到Doctrine2和Symfony2。我怎么做 就目前而言,我不使用多对一原则,而是手动操作 第条: class Article { //... /** * @ORM\OneT

我的数据库中有类似wiki的文章。他们已经给出了id,没有生成。文章可以有到其他文章的链接。可以链接到尚不存在的文章

我在这个项目中没有使用任何orm。这是我学会如何编码的时候。。。没有问题。我刚刚执行了select with join,当没有目标文章时,它的行为就好像有null一样

然后我转到Doctrine2和Symfony2。我怎么做

就目前而言,我不使用多对一原则,而是手动操作

第条:

class Article
{
    //...

    /**
     * @ORM\OneToMany(targetEntity="Link", mappedBy="article")
     */
    private $links;
}
链接:

获取目标文章类似于:

//...
$link; //some Link object
$targetArticle = $em->getRepository('Article')->find($link->getTargetArticleId());
if ($targetArticle) {
    //target article exists
} else {
    //target article don't exist
}
//...

问题:我能对博士协会做同样的事情吗?也许我需要在数据库中更改一些内容?

您没有试过吗?这应该行得通。此外,您还可以自引用您的文章实体,因为链接似乎没有任何其他字段。@DonCallisto我尝试将manytone与null一起使用。命令原则:schema:update给我带外键约束的sql,所以我删除了这个。然后我捕获了条令\ORM\EntityNotFoundException。但是当与DQL JOIN语句一起使用时,它给了我许多其他的例外。所以你是说你不想在文章和链接之间使用约束?@DonCallisto类似的东西。我希望将来保留孤儿并对其进行管理。因此,您唯一的可能性是手动管理字段,并将自定义方法写入存储库,以获取最终关联的链接。
//...
$link; //some Link object
$targetArticle = $em->getRepository('Article')->find($link->getTargetArticleId());
if ($targetArticle) {
    //target article exists
} else {
    //target article don't exist
}
//...