繁体   English   中英

Symfony&Doctrine2:“ mappedBy”注释的值?

[英]Symfony&Doctrine2: Value of `mappedBy` annotation?

我正在使用教义2学习Symfony 3。

当我在Doctrine实体中具有OneToMany关系时,我到底要在mappedBy注释中放什么呢?

  • 它是当前实体的表名吗?
  • 还是实体快捷方式
  • 还是实际的班级名称?

想象一下这个简单的例子:

<?php
namespace AppBundle\Entity;

/**
 * @ORM\Entity
 * @ORM\Table(name="blog_category")
 */
class Category
{
    // ...

    /**
     * @ORM\OneToMany(targetEntity="Article", mappedBy="category")
     */
    private $articles;

    // ...

}

为什么“类别”的正确值是mappedBy 为什么不是“ blog_category”“ Category” (大写的“ C”)? 还是“ AppBundle:类别”

现在我想通了。 它是相关实体类变量的名称:-)

在此处输入图片说明

作为补充,几乎在理论上您可以做的所有事情(肯定可以应用于任何其他ORM / ODM),在几乎每种情况下(QueryBuilder,findBy方法...),您都将使用属性名称而不是名称。

原因很简单,无论数据库引擎是什么,ORM都会处理对象及其属性,抽象出真实的表及其列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM