У меня есть объект-адрес, который используется в других других объектах, есть пользователи с адресом, есть магазины и компании.Symfony2: каскад ondelete для обратных отношений
Теперь то, что я пытаюсь сделать, это убедиться, что адрес автоматически удаляется, когда магазин будет удален, так что я попытался это:
/**
* Shop
*
* @ORM\Table(name="shop")
* @ORM\Entity
*/
class Shop {
/**
* @ORM\OneToOne(targetEntity="Address",cascade={"persist", "remove"})
* @ORM\JoinColumn(name="address", referencedColumnName="id",nullable=true, onDelete="CASCADE")
*/
private $address;
...
}
/**
* Address
*
* @ORM\Table(name="address")
* @ORM\Entity
*/
class Address {
//...
}
Но это не то, что я хочу, после удаления магазина в адрес все еще существует. Как я могу справиться с этим, есть ли способ сделать это?
Спасибо!
, когда я попытался его с каскадом = { "сохраняются", "удалить"} не работает - когда я удалить магазин адрес все еще существует – Chi
@Chi. Вам нужно указать принадлежность к ассоциации, добавьте опцию 'mappedBy =" shop "' в аннотацию ManyToOne (убедитесь, что имя атрибута является магазином в вашей сущности Address или дает правильный) , – lolmx
, но это не имеет смысла в этом случае, потому что адрес не всегда имеет клуб, дающий ему несколько столбцов для магазина, пользователя, компании и т. Д., Кажется мне странным – Chi