Symfony5 / Doctrine не может найти мой XML файл сопоставления для моей сущности - PullRequest
0 голосов
/ 27 апреля 2020

В настоящее время я пытаюсь настроить проект Symfony 5 с нуля, используя Doctrine с сопоставлением XML.

Я создал простой AppBundle с некоторыми объектами. После попытки сгенерировать мою миграцию у меня появляется эта ошибка:

Не найден файл сопоставления с именем 'User.orm. xml' для класса 'App \ Entity \ User \ User'.

Быстрый поиск в Google говорит мне, что это может быть конфликт с аннотациями (которые я не использую и не могу найти ни разу).

Мне кажется, что я что-то тупо упускаю просто и мне нужна помощь.

Моя сущность:

<?php
namespace App\Entity\User;

final class User implements UserInterface
{
use IdentifiableTrait;

private string $name;

private Collection $tasks;

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

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

public function setName(string $name): UserInterface
{
    $this->name = $name;

    return $this;
}

public function getTasks(): Collection
{
    return $this->tasks;
}

public function addTask(TaskInterface $task): UserInterface
{
    if (!$this->tasks->contains($task)) {
        $this->tasks->add($task);
        $task->setUser($this);
    }

    return $this;
}

public function removeTask(TaskInterface $task): UserInterface
{
    if ($this->tasks->contains($task)) {
        $this->tasks->removeElement($task);
    }

    return $this;
}
}

Мой User.orm. xml Файл (расположение: config / doctrine / User /):

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
                          https://www.doctrine-project.org/schemas/orm/doctrine-mapping.xsd">

   <entity name="App\Entity\User\User" table="users">
       <id name="id" type="integer" column="id"/>
       <field name="name" column="name"/>
   </entity>

</doctrine-mapping>

Мой конфиг / packages / doctrine .yaml file:

doctrine:
dbal:
    url: '%env(resolve:DATABASE_URL)%'

orm:
    mappings:
        App:
            is_bundle: false
            type: xml
            dir: '%kernel.project_dir%/config/doctrine'

Я действительно не вижу, чего мне не хватает.

С уважением, Mouke

РЕДАКТИРОВАТЬ: После прочтения комментария @cerad, я решил удалить часть пакета и просто использовать новую файловую архитектуру SF5. Проблема все еще там, хотя. Обратите внимание, что если я изменю имя User.orm. xml (например, user.orm. xml), он обнаружит его и изменит ошибку в соответствии с именем (несоответствие регистра для user.orm. xml )

1 Ответ

0 голосов
/ 27 апреля 2020

Обнаружена проблема.

Прежде всего, спасибо @cerad за совет относительно пакетов.

Что касается моей проблемы, я хотел отсортировать свои сущности в подпапки: Entity / User / User . php. Эта подпапка была проблемой. Как только я удалил его (как для класса, так и для файла orm. xml), он заработал.

Спасибо всем.

...