2013-05-16 2 views
0

Я новичок в Symfony и не уверен, что получаю ожидаемые результаты, хотя это не значит, что они ошибаются.Табличное сопоставление в Symfony

У меня есть 2 классов объектов и PropertyGuestAmenity

При запуске команды консоли для обновления схемы, я получаю 2 таблицы сгенерированные. свойство и свойство_guest_amenity. Это, как я ожидаю.

2 таблиц связаны друг с другом, и я настроил карты таблицы как

В собственности

 /** 
     * @ORM\ManyToMany(targetEntity="PropertyGuestAmenity", 
inversedBy="properties") 
     * @ORM\JoinTable(name="property_amenity_map") 
     */ 
    protected $amenities; 

В PropertyGuestAmenity

/** 
    * @ORM\ManyToMany(targetEntity="Property", inversedBy="amenities") 
    */ 
protected $property=null; 

При запуске обновления схемы она генерирует property_amenity_map table I ожидать от него, но он также генерирует свойство propertyguestamenity_property, которое выглядит так же, как property_ameni ty_map, но с полями в обратном порядке.

Я делаю что-то неправильно или это нормальное поведение?

ответ

2

В отношениях одна сторона инвертирована. На другом сайте отображается. Небольшое предостережение.

Таким образом, в вашем PropertyGuestAmenity

/** 
* @ORM\ManyToMany(targetEntity="Property", mappedBy="amenities") 
*/ 
protected $property=null; 
+0

Это установило его к тому, что я ожидал. Благодарю. – Khainestar

0

Да, в вашей декларации есть проблема, которая позволила доктрине думать, что у вас есть много отношений.

Первый обращается к «объектам недвижимости», второй - «удобствами». Но в вашем втором классе у вас есть только «свойство» (нет «свойств»).

Итак, доктрина сделала 2 отношения.

Смежные вопросы