Переопределить связь «многие ко многим» с отображенным суперклассом в Doctrine. - PullRequest
1 голос
/ 20 июня 2019

Я хочу установить связь «многие ко многим» между сопоставленным суперклассом CommonResource и сущностью Author.Мы используем синтаксис, предоставленный в руководстве по доктринам по этой теме: доктрина переопределения ассоциации .Но когда я проверяю схему доктрины с помощью php bin/console doctrine:schema:val, я получаю следующую ошибку:

[Mapping]  FAIL - The entity-class 'AppBundle\Entity\Author' mapping is invalid:
* The association AppBundle\Entity\Author#entities refers to the owning side field AppBundle\Entity\CommonResource#authors which does not exist.

У меня есть сопоставленный суперкласс CommonResource:

/**
 * Class CommonResource
 * @ORM\MappedSuperclass()
 * @ORM\HasLifecycleCallbacks
 */
class CommonResource
{
...
/**
     * @var
     * @ORM\ManyToMany(targetEntity="AppBundle\Entity\Author", inversedBy="entities")
     */
    protected $authors;
}

И сущность Author:

/**
 * Author
 *
 * @ORM\Table(name="author")
 * @ORM\HasLifecycleCallbacks
 */
class Author
{
...
/**
     * @var
     * @ORM\ManyToMany(targetEntity="AppBundle\Entity\CommonResource", mappedBy="authors")
     */
    protected $entities;
}

И некоторые объекты с расширением сопоставленного суперкласса, например:

/**
 * Itinerary
 *
 * @ORM\Table(name="itinerary")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\Itinerary\ItineraryRepository")
 * @ORM\AssociationOverrides({@ORM\AssociationOverride(name="authors", joinTable=@ORM\JoinTable(
 *              name="common_resource_itinerary",
 *              joinColumns=@ORM\JoinColumn(name="common_resource_id"),
 *              inverseJoinColumns=@ORM\JoinColumn(name="itinerary_id")
 *          ))})
 */
class Itinerary extends CommonResource implements AllowedPermissionInterface, EnrollmentInterface, SluggableInterface, CommonResourceEntityInterface
{
...
}

Правильно ли я использовал синтаксис доктрины для переопределений ассоциации с сопоставленными суперклассами или что-то не так?Буду признателен за любую помощь:)

...