有三个类:
MappedSuperClass
PHP-wise这很好用。使用getter
生成setter
和php app/console doctrine:generate:entities App
也可以。
使用php app/console doctrine:schema:update --force
创建架构时出现问题。创建了B类和C类的表。可以使用抽象类中的所有列,也可以使用类B和C中的专用字段。
表C中未生成列createdBy
。它已丢失。它是为表B创建的。问题出在哪里?
/**
* @ORM\MappedSuperclass
*/
abstract class A {
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
protected $id;
/**
* @ORM\Column(type="string")
*/
protected $name;
/**
* @Gedmo\Blameable(on="create")
* @ORM\ManyToOne(targetEntity="AppBundle[…]")
* @ORM\JoinColumn(name="created_by", referencedColumnName="id", nullable=false)
*/
protected $createdBy;
}
/**
* @ORM\Entity
* @ORM\Table(name="b")
* @ORM\HasLifecycleCallbacks()
*/
class B extends A {
/**
* @ORM\Column(type="string")
*/
protected $b;
}
/**
* @ORM\Entity
* @ORM\Table(name="c")
* @ORM\HasLifecycleCallbacks()
*/
class C extends B {
/**
* @ORM\Column(type="string")
*/
protected $c;
}
注意:我使用以下方式清除了行李:
app/console cache:clear
app/console doctrine:cache:clear-metadata
app/console doctrine:cache:clear-query
app/console doctrine:cache:clear-result