Ham*_*bot 8 symfony doctrine-orm
我正在尝试为涉及一般字段created_at和updated_at值的实体创建一个抽象类:
<?php
namespace AppBundle;
use Doctrine\ORM;
abstract class Model {
/**
* @var \DateTime $created_at
*
* @ORM\Column(type="datetime")
*/
private $created_at;
/**
* @var \DateTime $updated_at
*
* @ORM\Column(type="datetime")
*/
private $updated_at;
}
Run Code Online (Sandbox Code Playgroud)
然后,我扩展我的课程:
<?php
namespace AppBundle\Entity;
use AppBundle\Model;
/**
* Entity
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="RB\ProductsBundle\Entity\ProductRepository")
*/
class Entity extends Model
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, nullable=true)
*/
private $name;
}
Run Code Online (Sandbox Code Playgroud)
问题是:当我创建时php app/console doctrine:schema:update --dump-sql,它无法识别模型字段.我怎么能改变呢?我应该使用特征还是类似的东西?
编辑:我试图* @ORM\MappedSuperclass在我的抽象类的顶部添加没有运气
Wil*_*ill 12
问题可能在于抽象父类中的属性被定义为private.将它们更改为protected,它应该工作.
顺便说一下,我使用traits来实现这个目的,而不是继承,因为你的实体类可以使用多个traits,但它们只能扩展一个抽象类.