class Job { /** * @ORM\Column(type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @var \Doctrine\Common\Collections\Collection|JobContract[] * * @ORM\ManyToMany(targetEntity="Contract", inversedBy="job_id") * @ORM\JoinColumn(name="job_id", referencedColumnName="job_id") */ protected $contracts;
Encja Contract także istnieje.
Taka relacja tworzy mi dodatkową tabelę job_contract z kolumnami job_id i contract_id.
Wygląda ok.
Problem zaczyna się kiedy chcę po tej tabeli czegoś wyszukać. Robię w repozytorium Job złączenie po job_id i siłą rzeczy muszę wskazać encję, do której to się odnosi. Na razie jeszcze żadna nie istnieje. Robię więc encję JobContract
/** * @ORM\Entity * @ORM\Table(name="job_contract") */ class JobContract { /** * @var int * @ORM\Id * @ORM\Column(name="job_id", type="integer") */ protected $jobId; /** * @var int * @ORM\Id * @ORM\Column(name="contract_id", type="integer") */ protected $contractId;
I w tym momencie wywołanie update'u bazy przez konsolę kończy się niepowodzeniem: table job_contracts already exists
Jak mam to zrobić skoro raz krzyczy, że potrzebuje encji a jak już ją ma, to że tabela istnieje