Как правильно наследовать сущность в symfony?

148
16 марта 2019, 17:50

Как правильно наследовать сущность от другой сущности? У меня есть абстрактная сущность AbstractPerson в которой есть определенные свойства, есть сущность Person(пустой объект без свойств) которая наследует AbstractPerson. Мы наполняем Person и в итоге получаем объект Person с заполненными свойствами AbstractPerson в дебаггере выглядит примерно так:

AppBundle\Entity\Person(переменная $owner) -> *AbstractPerson*id=null
                                           -> *AbstractPerson*type='my_type'

Когда объект AbstractPerson был просто сущностью(не абстрактной), то в таком случае объект был равен null(даже когда свойство type заполнено)

AppBundle\Entity\AbstractPerson(переменная $owner) -> null

В чём может быть проблема?

Answer 1

Исходя из Вашего вопроса могу предположить, что вы вызвали конструктор для класса Person и полученный объект записали в переменную $owner. Переменная $owner теперь содержит объект класса Person и соответственно все поля которые были заполненны или объявлены по дефолту.

Класс AbstractPerson - это абстрактный и обявлен с использованием ключевого слова abstract. Конструктор такого класса невозможно вызвать поскольку это приведет к ошибке.

Нельзя создавать объекты абстрактных классов, они задуманы как шаблоны для наследования.

Поскольку объект не был создан то переменная $owner равна null. Подробнее можете прочитать здесь http://php.net/manual/ru/language.oop5.php

READ ALSO
Уникальность посетителя через cookie

Уникальность посетителя через cookie

Вообщем народ есть такая задача, нужно подсчитать количество уникальных активных посетителей на сайте в данный момент, уникальность определяется...

151
Не выводит результат mysqli_fetch_array в printf

Не выводит результат mysqli_fetch_array в printf

Соединении с базой установленоТаблица data есть

226
Постинг на стену группы VK

Постинг на стену группы VK

Прошу помощи! Не получается сделать постинг на стену в ВКПодскажите, что я делаю не правильно!? Спасибо!

137
Сделать span неактивным

Сделать span неактивным

Есть такая конструкция на сайте:

163