10
Jak mogę sprawdzić, czy podana wartość istnieje w polu Doctrine Collection (Relacja ManyToMany)?Doctrine2: sprawdź, czy istnieje wartość w Doctrine Collection
Na przykład próbuję:
$someClass = $this->
getDoctrine()->
getRepository('MyBundle:MyClass')->
find($id);
if (!$entity->getMyCollectionValues()->get($someClass->getId())) {
$entity->addMyCollectionValue($someClass);
}
Ale to nie jest oczywiście prawidłowe. Jak uniknąć duplikatów kluczy?
Oh, dzięki! To działa dobrze! – spiil
Czy istnieje metoda sprawdzania Doctrine bez wykonywania innego zapytania na początku, aby pobrać obiekt, którego szukamy, kiedy już mamy identyfikator tego obiektu? Dlaczego nie mogę zapytać kolekcji, czy ma wpis o tym identyfikatorze? Nie jestem w porządku z dodaniem do tego innego zapytania. – grantwparks
@Grantwparks można umieścić metodę contains() w metodzie dodawania, jeśli zawsze chcesz się upewnić, że sprawdzanie ma miejsce przed dodaniem. – TheGremlyn