Symfony2 MappedSuperClass和条令:生成:实体



我有一个"Offer"类(MapperSuperclass)和另外两个扩展它的类,"PrivateOffer"one_answers"PublicOffer"。

我遇到的问题是,当我运行"条令:生成:实体"命令时,类"PrivateOffer"one_answers"PublicOffer"都充满了与MappedSuperclass"Offer"类相同的属性,以及它的getter和setter方法。

如果我删除它们并只将它们放在"Offer"类中,"条令:模式:更新"会像预期的那样工作,但我需要再次运行"条令:生成:实体",所以每次我的扩展类都会被破坏。

如果"条令:生成:实体"扩展了MappedUpper类,为什么它们会复制这两个类中的所有属性和setter/getter方法?

谢谢大家:)

产品类别:

namespace ProJobBundleEntity;
use DoctrineORMMapping as ORM;
/**
 * Offer
 *
 * @ORMMappedSuperclass()
 */
class Offer
{
    /**
     * @var string
     *
     * @ORMColumn(name="name", type="string", length=255)
     */
    protected $name;
    ....more properties...
}

PrivateOfferClass:

<?php
namespace ProJobBundleEntity;
use DoctrineORMMapping as ORM;
/**
 * PrivateOffer
 *
 * @ORMTable(name="private_offer")
 * @ORMEntity
 */
class PrivateOffer extends Offer
{
    /**
     * @var integer
     *
     * @ORMColumn(name="id", type="integer")
     * @ORMId
     * @ORMGeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }
}

PublicOfferClass:

<?php
namespace ProJobBundleEntity;
use DoctrineORMMapping as ORM;
/**
 * PublicOffer
 *
 * @ORMTable(name="public_offer")
 * @ORMEntity
 */
class PublicOffer extends Offer
{
    /**
     * @var integer
     *
     * @ORMColumn(name="id", type="integer")
     * @ORMId
     * @ORMGeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }
}

这是Doctrine中的一种已知行为(更不用说:bug):在您的场景中,所有实体属性都必须是私有。只有通过getter才能访问它们。

相关内容

  • 没有找到相关文章

最新更新