注释学说ManyToOne

时间:2016-07-21 14:52:32

标签: symfony annotations doctrine

我有一个B类,有4个数组:

class B {
    private $FWs;
    private $FXs;
    private $FYs;
    private $FZs;

    ...
}

每个类FW,FX,FY,FZ扩展另一个抽象类F.

我想这样做:

b->getFWs();
b->getFXs();
b->getFYs();
b->getFZs();

fw->getB();
fx->getB();
fy->getB();
fz->getB();

我不知道应该添加哪个注释:

abstract class F {
    /**
     * @OMR\ManyToOne(targetEntity="B", inversedBy= ? )
     */
     private $b;
}

class B {
    /**
     * @ORM\OneToMany(targetEntity= ?, mappedBy="b")
     */
    private $FWs;

    ...
}
你能帮我吗?感谢。

1 个答案:

答案 0 :(得分:1)

如果在抽象classe中将$ b设置为protected,则会在子项上设置注释。

(如果有人到达这里并希望覆盖注释,他必须这样做,就像解释here

只需在子类中定义ManyToOne关系:

abstract class F {
     protected $b;
}

class FW extends F{
    /**
     * @OMR\ManyToOne(targetEntity="B", inversedBy= "FWs" )
     */
     protected $b;
}

class FX extends F {
    /**
     * @OMR\ManyToOne(targetEntity="B", inversedBy= "FXs" )
     */
     protected $b;
}

...

class B {
    /**
     * @ORM\OneToMany(targetEntity= "FW", mappedBy="b")
     */
    private $FWs;

    /**
     * @ORM\OneToMany(targetEntity= "FX", mappedBy="b")
     */
    private $FXs;

    ...
}