У меня есть ошибка в течение некоторого времени, когда я пытаюсь добавить фильтры для администратора. Существует два объекта: Клиент и Заказ .
В файле OrderAdmin
работают следующие фильтры:
$datagridMapper
->add('id')
->add('client.email')
->add('client.id')
;
Но если Я добавляю эту строку ->add('client.name')
, она вызывает эту ошибку:
Не найдено метаданных для свойства `App \ Entity \ Order :: $ client.name. Убедитесь, что ваше сопоставление Doctrine настроено правильно.
Объект Клиент наследуется двумя другими объектами. Оба они содержат имя свойства. В то время как идентификатор и адрес электронной почты присутствуют в родительском объекте. Я предполагаю, что именно поэтому появляется ошибка:
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({"user_1" = "one", "user_2" = "two"})
Раньше это работало нормально в предыдущих версиях. Есть идеи, как решить проблему? (Передача свойства name в родительский класс для меня на самом деле не является решением).
EDIT: связывается класс Order
<?php
namespace App\Entity;
/**
* Order
*
* @ORM\Table(name="Order")
* @ORM\Entity(repositoryClass="App\Repository\OrderRepository")
*/
class Order
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var float
*
* @ORM\Column(name="amount", type="float", nullable=true)
*/
private $amount;
/**
* @var \DateTime
*
* @Gedmo\Timestampable(on="create")
* @ORM\Column(name="date", type="datetime")
*/
private $date;
/**
* @var string
*
* @ORM\Column(name="state", type="string", length=30, nullable=true)
*/
private $state;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Client")
*/
private $client;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Article", mappedBy="order", cascade={"persist", "remove"}, orphanRemoval=true)
*/
private $articles;
. php
<?php
return [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true],
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true],
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['dev' => true],
Sonata\DatagridBundle\SonataDatagridBundle::class => ['all' => true],
Sonata\CoreBundle\SonataCoreBundle::class => ['all' => true],
Sonata\BlockBundle\SonataBlockBundle::class => ['all' => true],
Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true],
Knp\Bundle\SnappyBundle\KnpSnappyBundle::class => ['all' => true],
Sonata\AdminBundle\SonataAdminBundle::class => ['all' => true],
Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle::class => ['all' => true],
Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle::class => ['all' => true],
Knp\Bundle\PaginatorBundle\KnpPaginatorBundle::class => ['all' => true],
Liip\ImagineBundle\LiipImagineBundle::class => ['all' => true],
FOS\JsRoutingBundle\FOSJsRoutingBundle::class => ['all' => true],
];