Как установить отношение «многие к одному» в доктрине? - PullRequest
0 голосов
/ 25 января 2019

Я настраиваю новую базу данных в Doctrine и хочу использовать отношение Many-To-One.База данных работает отлично, но я не могу использовать запросы с этими классами.

Я следовал следующим документам:

/**
 * @Entity @Table
 **/
class Section
{
    /**
     * @Id @Column(type="integer") @GeneratedValue
     **/
     protected $id;

     //... 

     /**
     * @ManyToOne(targetEntity="Manufacturer")
     */
    private $manufacturer;

    //...
}

/**
 * @Entity
 **/
class Manufacturer
{   
    /**
     * @Id @Column(type="integer") @GeneratedValue
     **/
    protected $id;  
    //...
}

Так что моя проблема в том, что я не могу использовать любые запросы сSection.

Для проверки у меня есть небольшая процедура:

$relation = 'Section';

$rep = $entityManager->getRepository($relation); //here is the problem

$result = $rep->findAll();

foreach ($result as $row) {
    echo $row->getName();
}

Если я изменяю $relation на 'Manufacturer', она работает, или Если я использую другое отношение (One-To-One илиMany-To-Many), это тоже нормально.Но я не могу использовать Many-To-One (или One-To-Many bidirectional либо).Ручные DQL-запросы не работают.

Я сижу более двух дней над этой проблемой, надеюсь, вы мне поможете.

1 Ответ

0 голосов
/ 25 января 2019

Чтобы получить хранилище с учением, вы должны передать имя Учителя. Я знаю два способа сделать это (в связи с вашим делом):

use App\Entity\Section;

$rep = $entityManager->getRepository(Section::class);

$rep = $entityManager->getRepository("App\Entity\Section"); // Path is depending of your application's structure
...