Intereting Posts
Элементы формы не отображаются? Создать новый PDF из шаблона с PHP Как я могу использовать один штрих-код Nav на нескольких страницах, но показывается текущая страница? Azure копирует капли из одной учетной записи хранилища в другую в той же подписке, используя API останова Неустранимая ошибка: вызов функции-функции-члена () для не-объекта в Удаление URL-адресов из текстовой строки Laravel улавливает «уникальную» ошибку поля Неустранимая ошибка: превышено максимальное время выполнения 0 секунд PHP – параллельная задача Laravel 5.1: htmlentities () ожидает, что параметр 1 будет строкой, заданный массив Как извлечь переменную из строки запроса в codeigniter? jQuery / PHP Проводка нескольких значений SQLSTATE : Недопустимый номер параметра: количество связанных переменных не совпадает с числом ошибок токенов Ошибка входа в систему Google Php Oauth Не удалось найти системный пакет CA Числа в кавычках с использованием json_encode ()

Черты – конфликт свойств с родительским классом

У меня есть класс Zgh\FEBundle\Entity\User который расширяет FOS\UserBundle\Model\User .

 use FOS\UserBundle\Model\User as BaseUser; class User extends BaseUser implements ParticipantInterface { use BasicInfo; // .. } 

И класс BaseUser :

 abstract class User implements UserInterface, GroupableInterface { protected $id; // .. } 

И свойство BaseInfo :

 trait BasicInfo { /** * @ORM\Column(type="string", length=255) * @ORM\Id * @ORM\GeneratedValue(strategy="NONE") */ protected $id; // .. } 

Но когда я запускаю свой код, я получаю эту ошибку:

Строгие стандарты: FOS \ UserBundle \ Model \ User и Zgh \ FEBundle \ Model \ Partial \ BasicInfo определяют одно и то же свойство ($ id) в составе Zgh \ FEBundle \ Entity \ User. Это может быть несовместимо, вместо этого используйте вместо этого методы доступа.

Я использую рамки Symfony.

Есть ли способ разрешить этот конфликт между признаком и объектом родительского класса об этом свойстве?

Нет, еще нельзя переписать сопоставленное свойство, используя Trait.

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

т.е.

 <?php use FOS\UserBundle\Model\User as BaseUser; abstract class AbstractStrategyNoneEntity extends BaseUser { /** * @ORM\Column(type="string", length=255) * @ORM\Id * @ORM\GeneratedValue(strategy="NONE") */ protected $id; } abstract class AbstractStrategyAutoEntity extends BaseUser { /** * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") * */ protected $id; } 

И распространите одно из них в дочерних сущностях.

 /** * @ORM\Entity */ class Child extends AbstractStrategyNoneEntity { // Inherited mapping } 

Надеюсь, это ответит на ваш вопрос.