Я работаю с Symfony 3.3 и хочу добавить в класс функцию, реализующую Entity:
/**
* GeoName
*
* @ORM\Table(name="geo__name" ,indexes={
* @ORM\Index(name="geoname_geoname_search_idx", columns={"name", "country_code"})
* })
* @ORM\Entity(repositoryClass="Bordeux\Bundle\GeoNameBundle\Repository\GeoNameRepository")
*/
class GeoName
{
...
}
Итак, я расширил этот класс и добавил нужную функцию.
use ...\GeoName as BaseEntity;
class GeoName extends BaseEntity
{
public function __toString()
{
return $this->getName();
}
}
Ошибка
Если я вообще не использую аннотации, когда я использую подкласс, система не распознает его как сущность:
Class "GeoNameBundle\Entity\GeoName" sub class of "Bordeux\Bundle\GeoNameBundle\Entity\GeoName" is not a valid entity or mapped super class.
Если я объявляю свой подкласс как сущность с аннотациями @ORM\Entity
, когда я использую его, система ожидает две таблицы, потому что она принимает мое расширение как наследование модели класса (не определено должным образом):
An exception occurred while executing 'SELECT t1.id AS id_2, t1.name AS name_3, ...[MORE FIELDS]... FROM geo__name t1 WHERE t0.id = ?' with params [6362055]:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.id' in 'where clause'
Что я могу сделать, если Я не могу редактировать аннотации или любое содержимое суперкласса (потому что это библиотека) и учитывая, что Я на самом деле не пытаюсь реализовать Наследование модели , только добавление функции в класс, реализующий сущность.
Спасибо за внимание и помощь.