将 symfony 3.4 迁移到 4.4:Doctrine MappingException 不是有效实体或映射的超级 class 问题

Migrating symfony 3.4 to 4.4: Doctrine MappingException not a valid entity or mapped super class issue

我已经从 Symfony 3.4 迁移到 4.4 并从使用包转移到 /src/目录。 当我查询实体时,Doctrine 抛出异常:

$regions = $this->getDoctrine()->getRepository(Regions::class);
$regionInfo = $regions->findOneBy(array('region' => strtolower($regionSearch)));

Result: Uncaught PHP Exception Doctrine\ORM\Mapping\MappingException: "Class "App\Entity\Regions" is not a valid entity or mapped super class."

这是实体:

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
/**
 * @ORM\Entity
 * @ORM\Table(name="Regions")
 */

/**
 * Regions
 */
class Regions
{
    /** properties ... */
}

我想知道这是否是因为找不到 bundle/Resources 中的 orm.xmluse Doctrine\ORM\Mapping as ORM 也未使用。

您的注释应设置在 class 声明的正上方:

/**
 * Regions
 * @ORM\Entity
 * @ORM\Table(name="Regions")
 */
class Regions

对于你当前的文件,只有第一个文档块被读取并且因为它缺少 @ORM\Entity 注释,Doctrine 认为它不是一个有效的实体 class.