"Кэш-ключ "App:Category__CLASSMETADATA__" содержит зарезервированные символы "{}()/\@:"."

Я получаю эту ошибку, которую, я думаю, получаю при попытке доступа к любому репозиторию сущностей.

An exception has been thrown during the rendering of a template ("Cache key "App:Category__CLASSMETADATA__" contains reserved characters "{}()/@:".").

Я загрузил фиксацию, когда код в последний раз работал, и перезагрузил, но я все еще получаю эту ошибку.

Я пытался найти ответ в предыдущих сообщениях, но они не работают для меня, потому что, например, у меня нет @Assert нигде в коде.

Я попытался просмотреть файл composer.json и обновить все библиотеки до последней версии, а затем удалить папку поставщика и обновление композитора, потому что это сработало для кого-то. Но это не сработало для меня.

Я использую Symfony 5.4 и PHP 8.0.

Категория.php

    <?php

namespace App\Entity;

use App\Repository\CategoryRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity(repositoryClass: CategoryRepository::class)]
class Category
{
    #[ORM\Id]
    #[ORM\GeneratedValue]
    #[ORM\Column(type: 'integer')]
    private $id;

    #[ORM\Column(type: 'string', length: 255)]
    private $name;

    #[ORM\OneToMany(mappedBy: 'category', targetEntity: Product::class, orphanRemoval: true)]
    private $products;

    public function __construct()
    {
        $this->products = 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;
    }

    /**
     * @return Collection<int, Product>
     */
    public function getProducts(): Collection
    {
        return $this->products;
    }

    public function addProduct(Product $product): self
    {
        if (!$this->products->contains($product)) {
            $this->products[] = $product;
            $product->setCategory($this);
        }

        return $this;
    }

    public function removeProduct(Product $product): self
    {
        if ($this->products->removeElement($product)) {
            // set the owning side to null (unless already changed)
            if ($product->getCategory() === $this) {
                $product->setCategory(null);
            }
        }

        return $this;
    }
}

Я буду рад поделиться любой информацией, которая, по вашему мнению, может быть полезной.

Заранее большое спасибо.

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

Можете ли вы добавить объект категории к своему вопросу, пожалуйста

G1.3 03.05.2022 10:50

Спасибо за ответ, я добавил объект категории

Juan 03.05.2022 11:51

Вы пробовали вручную очистить кеш?

Julien B. 04.05.2022 04:12

Да, я делал Bin/console cache:clear --end=dev каждый раз после обновления композитора

Juan 04.05.2022 08:27

Julien означает удалить папку напрямую вместо команды symfony. Вы пытались очистить кеш доктрины с помощью bin/console doctrine:cache:clear-metadata?

SubCore 04.05.2022 09:11

ах да я пробовал удалять папку с дерева и теперь ваше предложение но ничего не изменилось

Juan 04.05.2022 09:41
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
6
138
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте заменить «App:Category» на «App\Entity\Category» при вызове контроллеров, форм и репозиториев.

Мы столкнулись с той же проблемой, и замена сработала для нас.

Другие вопросы по теме