Doctrine optional OneToOne mapping

Я пытаюсь создать дополнительное сопоставление OneToOne в Doctrine.

У меня есть таблица со всеми доступными городами и почтовыми индексами (эту таблицу нельзя изменять), и у меня есть таблица с адресами и нанесенным на карту городом. Но иногда я не хочу добавлять город в свой адрес в начале (возможно, позже). Но когда я не добавляю город в адрес, сохранение адреса дает мне исключение отражения, потому что нет такого объекта, как 'null', который должен быть объектом de City.

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

Есть предложения? Или что мне не хватает?

class Address{
/**
 * @OneToOne(targetEntity="City")
 * @JoinColumn(name="city_id", referencedColumnName="id")
 */
  private $city = '';

Возможные решения, которые я рассмотрел:

  • Создайте пустой объект города в базе данных и назначьте его всегда только что созданным объектам Address (может вызвать много накладных расходов)
  • Создайте связь ManyToMany с массив городов, поэтому может быть добавлено ноль или больше городов (я могу ограничить количество городов в моем объекте Address), но тогда мне нужна таблица сопоставления ...
7
задан jayv 29 July 2011 в 07:47
поделиться