Bonjour,

Je rencontre l'erreur suivante:

The "App\Entity\Category" entity has a repositoryClass set to "App\Entity\CategoryRepository", but this is not a valid class. Check your class naming. If this is meant to be a service id, make sure this service exists and is tagged with "doctrine.repository_service".

Sauf que mes namespace semblent bien cohérents.

/**
 * @ORM\Entity(repositoryClass=CategoryRepository::class)
 */

Je vous remercie de votre aide

7 réponses


Bonjour,

les repository sont généralement dans le namespace 'App\Repository', il faut donc faire un use au début de ton fichier ou écrire

/**
 * @ORM\Entity(repositoryClass=App\Repository\CategoryRepository::class)
 */
barpoi78
Auteur

Cela me semble bon:

/**

  • @ORM\Entity(repositoryClass=CategoryRepository::class)
    */

    et mon use:

    use App\Repository\CategoryRepository;

Merci, comme je ne suis pas trop avancé dans mon projet, je vais recommencer et cette fois-çi en installant tous les pakages avec --full car je crois que c'est peut-être un problème de dépendances.
Je garde une copie quand-même et pour apprendre de toute façon, c'est pas plus mal.

Et à quoi ressemble ton repository ?

barpoi78
Auteur

Voici mon Repository:

<?php

namespace App\Repository;

use App\Entity\Category;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;

/**

  • @method Category|null find($id, $lockMode = null, $lockVersion = null)
  • @method Category|null findOneBy(array $criteria, array $orderBy = null)
  • @method Category[] findAll()
  • @method Category[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
    */
    class CategoryRepository extends ServiceEntityRepository
    {
    public function construct(ManagerRegistry $registry)
    {
    parent::
    construct($registry, Category::class);
    }

Essaie avec :

public function __construct(ManagerRegistry $registry)
{
    parent::__construct($registry, Category::class);
}
barpoi78
Auteur

ça na marche pas et en recommençant, j'ai la même erreur

Bon alors, autre piste :
Qu'est-ce que ça donne si tu ajoute ça dans le fichier services.yaml ?

App\Repository\:
        resource: '../src/Repository'
        autowire: true
        tags: ['doctrine.repository_service']