我的数据库中有类似wiki的文章。他们给了id(和NO生成)。文章可以链接到另一篇文章。可以链接到(尚未)不存在的文章。
我没有在这个项目中使用过任何一个orm。 (从我学习编码的时候开始......)没有问题。我刚刚使用join执行了select,当没有目标文章时,这就像是否存在null一样。
然后我转到Doctrine2(和Symfony2)。我该怎么办?
到目前为止,我并没有使用多对一的学说,而是手工完成。
文章:
class Article
{
//...
/**
* @ORM\OneToMany(targetEntity="Link", mappedBy="article")
*/
private $links;
}
链接:
class Link
{
//...
/**
* @ORM\ManyToOne(targetEntity="Article", inversedBy="links")
*/
private $article;
/**
* @ORM\Column(type="integer")
*/
private $targetArticleId;
}
获取目标文章是这样的:
//...
$link; //some Link object
$targetArticle = $em->getRepository('Article')->find($link->getTargetArticleId());
if ($targetArticle) {
//target article exists
} else {
//target article don't exist
}
//...
问题:我可以使用Doctrine2关联做同样的事情吗?也许我需要改变数据库中的东西?