Я пытаюсь сделать абстрактный класс для своих субъектов, связанных с общими полями, как created_at
и updated_at
значения:Абстрактный класс для Doctrine сущности
<?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;
}
Тогда я расширяю свой класс:
<?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;
}
Проблема в том, что когда я делаю php app/console doctrine:schema:update --dump-sql
, он не распознает поля Модели. Как я могу это изменить? Должен ли я использовать черту или что-то в этом роде?
EDIT: Я пытался добавить * @ORM\MappedSuperclass
в верхней части моего абстрактного класса не повезло
Спасибо за ваше время :)
Это было! Спасибо :) – Hammerbot
Идеальный намек на черты - я бы не рекомендовал расширение здесь ни один. – LBA
Я также считаю, что этот признак может быть лучшим вариантом. Тем не менее, я пытаюсь сделать абстрактный класс для базовых функций, таких как параметры сериализации, функции временных меток и т. Д. Исходя из среды Laravel, это можно оценить. – Hammerbot