Конфигурация сущности «App \ Entity \ Cat» недоступна (эта сущность используется в качестве цели для поля автозаполнения «cat») - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь настроить бэкэнд EasyAdmin с Symfony 4.

Однако, когда я пытаюсь редактировать сообщение, я получаю:

Конфигурация "Объект App \ Entity \ Cat "недоступен (этот объект используется в качестве цели для поля автозаполнения" cat ").

Я пробовал с другим объектом (пользователем), и он отлично работает.

Ребята, вы хоть представляете, что это за конфигурация и / или как сделать ее доступной?Спасибо.

Это фактическая конфигурация:

formats:
    blabla

entities:
    User:
        class: App\Entity\User
        list:
            fields: ['username', 'roles', 'email', 'registration_datetime', 'status']

    Post:
        class: App\Entity\Post
        list:
            fields: blabla

        edit:
            fields:
                - {type: 'group', columns: 9}
                - {property: 'title', type_options: { block_name: 'custom_title' }}
                - {property: 'body', type: 'fos_ckeditor'}
                - {type: 'group', columns: 3}
                - {property: 'cat', type: 'easyadmin_autocomplete', type_options: {class: 'App\Entity\Cat'}}
                - {property: 'subcat', type: 'easyadmin_autocomplete', type_options: {class: 'App\Entity\Subcat'}}
                - 'tile'
                - 'place'

site_name: 'ShadowTech'

user:
    name_property_path: 'username'

Ниже находится Cat объект:

<?php

namespace App\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\CatRepository")
 */
class Cat
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $name;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Post", mappedBy="cat")
     */
    private $posts;

    /**
     * @ORM\Column(type="string", length=100)
     */
    private $readable_name;

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

    public function getId(): ?int
    {
        return $this->id;
    }

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

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

        return $this;
    }

    public function __toString()
    {
        return $this->getReadableName();
    }

    /**
     * @return Collection|Post[]
     */
    public function getPosts(): Collection
    {
        return $this->posts;
    }

    public function addPost(Post $post): self
    {
        if (!$this->posts->contains($post)) {
            $this->posts[] = $post;
            $post->setCat($this);
        }

        return $this;
    }

    public function removePost(Post $post): self
    {
        if ($this->posts->contains($post)) {
            $this->posts->removeElement($post);
            // set the owning side to null (unless already changed)
            if ($post->getCat() === $this) {
                $post->setCat(null);
            }
        }

        return $this;
    }

    public function getReadableName(): ?string
    {
        return $this->readable_name;
    }

    public function setReadableName(string $readable_name): self
    {
        $this->readable_name = $readable_name;

        return $this;
    }
}

1 Ответ

0 голосов
/ 12 марта 2019

Итак, как уже упоминалось в комментариях - вам просто нужно добавить конфигурацию для этого объекта в easy_admin.yaml.

Вот так:

#config/packages/easy_admin.yaml
easy_admin:
  entities:
    Cat:
      class: App\Entity\Cat
...