Подтвердить что ты не робот

Doctrine 2 join table + дополнительные поля

У меня есть две таблицы и таблица соединений: "штат", "классификация" и "staff_classification". В таблице соединений у меня есть дополнительное логическое поле: "showclassification". Моя аннотация такова:

 /**
 * @ManyToMany(targetEntity="Staff", inversedBy="classifications")
 * @JoinTable(name="staff_classifications",
 *  joinColumns={@JoinColumn(name="staffid", referencedColumnName="id")},
 *  inverseJoinColumns={@JoinColumn(name="classificationid", referencedColumnName="id", unique=true)});
 */
  • Как добавить дополнительное поле "showclassifications" в таблицу соединений?
  • Как связать поле через DQL? Например. Какой запрос получит все классификации персонала, которые могут быть показаны?
  • Я помещаю вышеупомянутую аннотацию в один класс и аннотацию @ManyToMany без @joinTable в другой? Например. @ManyToMany (targetEntity = "Классификация" )?
4b9b3361

Ответ 1

Вам нужна организация, которая описывает отношения (StaffClassifications), которые имеют отношения OneToMany как с персоналом, так и с классификациями.

ManyToMany не позволяет вам иметь какие-либо "дополнительные" свойства, потому что таблица соединений не является сущностью и, следовательно, не может иметь никаких свойств.