Symfony — Symfony2 & amp; PHP Traits со встроенным отношением сущностей

В Symfony2 я просто недавно пытался мыслить в терминах черт характера, чтобы создать какое-то поведение.
Допустим, у меня есть атрибут адреса в сущности. Я экстернализировал атрибуты, геттеры и сеттеры, связанные с этим в AddressableTrait.

Но что, если адрес станет сущностью? Я начал пытаться определить мое отношение OneToMany в моей черте, как если бы оно было в обычной сущности:

use Doctrine\ORM\Mapping as ORM;

class AddressableTrait {

/**
* @var
* @ORM\OneToMany(targetEntity="XXXX\GlobalBundle\Entity\Address", inversedBy="What to put here" )
*/
protected $addresses;

/**
* @return ArrayCollection
*/
public function getAddresses()
{
return $this->addresses;
}

/**
* @param ArrayCollection $addresses
*/
public function setAddresses($addresses)
{
$this->addresses = $addresses;
}
}

Что положить в перевернутый? Цель этой черты в том, чтобы точно внедрить все функции поведения, поэтому я думаю, что хотя бы с использованием традиционной аннотации / YML / XML этого добиться невозможно.

Я немного покопался в ней и нашел это очень интересная ссылка кажется, что это позволяет вам определять отношения через события, но есть еще логика, которую нужно добавить к «завершающим» отношениям.

ОБНОВИТЬ :
Используя вышеуказанную ссылку, мне удалось создать динамическое отношение ManyToMany. обновление схемы работает при создании, но если я прокомментирую динамическое отношение, схема: update —dump-sql не удалит его. Вроде работает надстройка только. Любой ключ к тому, чтобы заставить динамическое отображение придерживаться добавления / удаления реальных отношений?

Большое спасибо за ваши ответы!

никола

1

Решение

Я столкнулся с проблемой использования черт в сущностях. Для обычных значений базы данных (скаляр, DateTime) черты работали нормально, но когда я попытался определить отношения сущностей в чертах, пакет миграции доктрины преобразовал бы свойство в поле varchar.

Единственный способ найти правильные свойства отношения сущностей, который я смог найти, — это переместить их из свойства в сам класс сущностей.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]