ManyToMany symfony 4 brak danych w kolekcji

Odpowiedz Nowy wątek
2018-12-06 20:43
0

Cześć, mam problem z relacją ManyToMany w Symfony 4. Mam taką relację w encji User :

class User implements UserInterface, \Serializable
{

    /**
     * @ORM\ManyToMany(targetEntity="App\Entity\Clinic", mappedBy="clinic")
     */
    private $howClinic;

    public function __construct()
    {
        $this->howClinic = new ArrayCollection();
    }

    /**
     * @return Collection
     */
    public function getHowClinic()
    {
        return $this->howClinic;
    }

}

A w encji Clinic tak wygląda relacja :

class Clinic
{
    /**
     * @ORM\ManyToMany(targetEntity="App\Entity\User", inversedBy="howClinic")
     * @ORM\JoinTable(name="clinic_doctor",
     *     joinColumns={@ORM\JoinColumn(name="clinic_id", referencedColumnName="id")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}
     *     )
     */
    private $clinic;

    public function __construct()
    {
        $this->clinic = new ArrayCollection();
    }

    /**
     * @return Collection
     */
    public function getClinic()
    {
        return $this->clinic;
    }

}

W bazie mam tę tabelę clinic_doctor a w niej user_id - 50 i clinic_id - 70 . Ale gdy wyświetlę sobie dane z encji Usera, to dostaję pustą kolekcję, czyli tak jakby uzytkownik nie był przypisany do żadnej kliniki, a przecież w bazie siedzi user przypisany do kliniki. Ktoś wie może dlaczego nic mi nie zwraca ? Podejrzewam, że coś mam namieszane z tymi relacjami..

Co to jest howClinic? - arczinosek 2018-12-11 00:46

Pozostało 580 znaków

2018-12-11 01:18
0

Z Clinic wywal cały JoinTable, zrób od nowa migrację i powinno działać.

PS. Co to jest Clinic::getClinic? :O

Pozostało 580 znaków

2018-12-11 07:31
0

getClinic jest to getter dla clinic . Nie jest to potrzebne? Dopiero zaczynam ogarniać Doctrine ORM i mam trochę kłopotów z tym. A dlaczego wywalić cały JoinTable ? Bez tego też automatycznie utworzy mi nową tabelę z relacją ManyToMany ?

Pozostało 580 znaków

2018-12-15 21:58
0

Zwyczajnie spróbuj :) sprawdź czy działa, jeżeli nie - przeczytaj komunikat błędu i zastanów się co może być nie tak.
Poza tym relacje możesz utworzyć przez bin/console make:entity podając w field type nazwę relacji (OneToMany, ManyToOne, ManyToMany, OneToOne).

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0