Symfony:加载的类名与声明的类名之间的大小写不匹配

gwo2fgha  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(135)

我是新的Symfony 6,我有这个框架的问题。最近我得到了这个错误,但我不明白为什么我从命令行创建所有的数据库。
我的错误是:加载的类名和声明的类名之间的大小写不匹配:“应用程序\实体\标记”与“应用程序\实体\标记”。
在我的数据库中,所有的表都是用小写语法写的。在我插入与所有表的关系之前,一切都正常。
我尝试在我的实体中插入此代码以使用正确的语法,但它不工作。
Entity\Tag.php

#[ORM\Table(name: 'tag')]

有些人在我的数据库(MYSQL)中谈到这个参数,但我不知道这是否有影响:
表名小写=(0 1 2)
你有主意吗?
这是我的实体标记

<?php

namespace App\Entity;

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

#[ORM\Entity(repositoryClass: TagRepository::class)]

class Tag
{
    #[ORM\Id]
    #[ORM\GeneratedValue]
    #[ORM\Column]

    private ?int $id = null;

    #[ORM\Column(length: 255)]
    private ?string $nomtag = null;

    #[ORM\ManyToOne(inversedBy: 'idcatetag')]
    #[ORM\JoinColumn(nullable: false)]
    private ?catetag $idcatetag = null;

    #[ORM\ManyToMany(targetEntity: Mission::class, mappedBy: 'idtagmissionassign')]
    private Collection $missions;

    #[ORM\ManyToMany(targetEntity: Service::class, mappedBy: 'idtagserviceassign')]
    private Collection $services;

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

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

    public function getNomtag(): ?string
    {
        return $this->nomtag;
    }

    public function setNomtag(string $nomtag): self
    {
        $this->nomtag = $nomtag;

        return $this;
    }

    public function getIdcatetag(): ?catetag
    {
        return $this->idcatetag;
    }

    public function setIdcatetag(?catetag $idcatetag): self
    {
        $this->idcatetag = $idcatetag;

        return $this;
    }

    /**
     * @return Collection<int, Mission>
     */
    public function getMissions(): Collection
    {
        return $this->missions;
    }

    public function addMission(Mission $mission): self
    {
        if (!$this->missions->contains($mission)) {
            $this->missions->add($mission);
            $mission->addIdtagmissionassign($this);
        }

        return $this;
    }

    public function removeMission(Mission $mission): self
    {
        if ($this->missions->removeElement($mission)) {
            $mission->removeIdtagmissionassign($this);
        }

        return $this;
    }

    /**
     * @return Collection<int, Service>
     */
    public function getServices(): Collection
    {
        return $this->services;
    }

    public function addService(Service $service): self
    {
        if (!$this->services->contains($service)) {
            $this->services->add($service);
            $service->addIdtagserviceassign($this);
        }

        return $this;
    }

    public function removeService(Service $service): self
    {
        if ($this->services->removeElement($service)) {
            $service->removeIdtagserviceassign($this);
        }

        return $this;
    }
}

这是我的回购文件:

<?php

namespace App\Repository;

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

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

    public function save(Tag $entity, bool $flush = false): void
    {
        $this->getEntityManager()->persist($entity);

        if ($flush) {
            $this->getEntityManager()->flush();
        }
    }

    public function remove(Tag $entity, bool $flush = false): void
    {
        $this->getEntityManager()->remove($entity);

        if ($flush) {
            $this->getEntityManager()->flush();
        }
    }

//    /**
//     * @return Tag[] Returns an array of Tag objects
//     */
//    public function findByExampleField($value): array
//    {
//        return $this->createQueryBuilder('t')
//            ->andWhere('t.exampleField = :val')
//            ->setParameter('val', $value)
//            ->orderBy('t.id', 'ASC')
//            ->setMaxResults(10)
//            ->getQuery()
//            ->getResult()
//        ;
//    }

//    public function findOneBySomeField($value): ?Tag
//    {
//        return $this->createQueryBuilder('t')
//            ->andWhere('t.exampleField = :val')
//            ->setParameter('val', $value)
//            ->getQuery()
//            ->getOneOrNullResult()
//        ;
//    }
}
bkhjykvo

bkhjykvo1#

检查文件名,它应该是Tag.php,T大写,symfony会自动创建小写的表。如果一切正常,尝试删除您的文件,并使用make:entity或php bin/console doctrine:schema:update --force在修改实体后重新写入

相关问题