/** @Entity */
class First
{
/** @OneToMany(targetEntity="Second", mappedBy="parent") */
protected $secondList;
// access methods here
public function __construct()
{
$this->secondList = new ArrayCollection();
}
}
/** @Entity */
class Second
{
/**
* @ManyToOne(targetEntity="First", inversedBy="secondList")
* @JoinColumn(name="First_id", referencedColumnName="Id")
*/
protected $parent;
}
Вот проблема с принятием в ArrayCollection $secondList
элементов из категории Second
. Second
Отношение ManyToOne работает правильно. Возможно, я сделал что-то неправильно при инициализации стойкости (потому что First_Id
в базе SQL всегда null
).Doctrine 2: OneToMany отношение
Любые предложения?
Хорошо, это действительно помогает мне установить столбец First_Id во второй таблице записей. Однако попытка получить объект First class не берет Second's в 'ArrayCollection'. У меня только пустая коллекция: | –
так что в дБ все в порядке? Как вы собираете материал? и как вы проверяете, что у вас есть? Потому что, когда вы вызываете $ first-> getSecond(), он должен загрузить его. – Pinetree
И действительно, это то, что я делаю. DB в порядке (в конечном итоге схема была создана с помощью набора инструментов doctrine). Я получаю объекты, используя методы find() или getRepository() из класса EntityManager. Объекты были созданы правильно, даже я получаю только объекты класса «Второй». Я имею полное отношение к объекту класса «Первый». О, и я проверяю этот список, используя 'serialize ($ first-> getSecondList() -> current())', coz, берущий материал '$ takedSecond-> getSomeOtherValue()' показывает ошибку в использовании метода для не-объектной переменной. –