0

我有抽象实体(App - 基础核心):

namespace App\Bundles\AppBundle\Entity;

abstract class App extends ContainerAware implements AppInterface
{
// .....
}

和自我实体:

namespace AppRus\Bundles\AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM,
    App\Bundles\AppBundle\Entity\App as BaseApp;

/**
 * App
 *
 * @ORM\Table(name="apps")
 * @ORM\Entity(repositoryClass="AppRus\Bundles\AppBundle\Entity\AppRepository")
 */
class App extends BaseApp
{
  // ....
}

和实体进行控制修订:

namespace App\Bundles\AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * AppHistory
 *
 * @ORM\Table(name="apps_history")
 * @ORM\Entity(repositoryClass="App\Bundles\AppBundle\Entity\AppHistoryRepository")
 */
class AppHistory
{
    /**
     * @var integer
     *
     * @ORM\ManyToOne(targetEntity="App\Bundles\AppBundle\Entity\App")
     * @ORM\JoinColumn(name="app_apple_id", referencedColumnName="apple_id")
     */
    private $app;
}

我无法创建关系 AppHistory#app 到 App#apple_id

当我将实体设置为抽象类 App 时,学说创建一个新表“App”当我将 MappedSuperClass 设置为抽象类 App 时,出现错误:http ://docs.doctrine-project.org/en/latest/reference/inheritance -mapping.html#mapped-superclasses

如何创建从 AppHistory 到抽象核心 App 的关系?

4

1 回答 1

0

我的理解是这是不可能的。我认为您做事的方式不对,至少对于 Doctrine2 而言。

首先,从您提到的 Doctrine2 文档中:

映射的超类是一个抽象或具体的类,它为其子类提供持久的实体状态和映射信息,但它本身不是实体。

您无法创建与非实体的关系!

要解决您当前的问题(〜版本控制〜在学说中),请查看Github 上的 EntityAudit

于 2012-12-02T13:51:00.840 回答