Проблема в Doctrine Two Entities, имеющей отношения многие ко многим, инструмент cli сообщает об ошибке при создании схемы (SchemaException) - PullRequest
1 голос
/ 01 сентября 2011

Я создал две Doctirne сущности, между которыми существует много-много взаимосвязей.Но когда я пытаюсь создать таблицы БД из этой схемы, я получаю странное исключение, которое представляет собой SchemaException, говорящее «Таблица с имя_символа уже существует», но, поскольку я дважды проверил базу данных, она не содержит никакихстолы вообще.Пожалуйста, помогите мне решить эту проблему.Спасибо

Entity Doctor

<?php
use Doctrine\Common\Collections\ArrayCollection;
/**
 * @Entity
 * @Table(name="doctors")
 */
class Default_Model_Doctor
{
    /**
     * @Id @Column(type="integer")
     * @GeneratedValue(strategy="AUTO")
     */
    private $id;

    /** @Column(type="string") */
    private $name;

    /**
     * @ManyToMany(targetEntity="Default_Model_Patient", inversedBy="doctors")
     * @JoinTable(name="doctors_patients",
     *      joinColumns={@JoinColumn(name="doctor_id", referencedColumnName="id")},
     *      inverseJoinColumns={@JoinColumn(name="patient_id", referencedColumnName="id")}
     *      )
     */

    private $patients;

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

    public function setName($string) {
        $this->name = $string;
        return true;
    }

    public function getName() {
        return $this->name;
    }
}

Entity Patient

<?php
use Doctrine\Common\Collections\ArrayCollection;
/**
 * @Entity
 * @Table(name="doctors")
 */
class Default_Model_Patient
{
    /**
     * @Id @Column(type="integer")
     * @GeneratedValue(strategy="AUTO")
     */
    private $id;

    /** @Column(type="string") */
    private $name;

    /** 
     * @ManyToMany(targetEntity="Default_Model_Doctor", mappedBy="patients")
     */

    private $doctors;

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

    public function setName($string) {
        $this->name = $string;
        return true;
    }

    public function getName() {
        return $this->name;
    }
}

Это ошибка, которую я получаю от инструмента Doctrine cli при создании схемы.

Пожалуйста, перейдите по этой ссылке для скриншота, который я приложил, который ясно показывает ошибку.

1 Ответ

1 голос
/ 09 сентября 2011

Измените @Table (name = "doctor") в вашей модели Patients на @Table (name = "пациентов")

...