找不到教义注释阅读器类

时间:2019-07-31 08:50:31

标签: php symfony doctrine-orm doctrine

我开始在silex中使用带有来自文档use Doctrine\ORM\Mapping as ORM;的简单注释的学说,并且它起作用了。现在我看到symfony使用import @ORM\EntityClass "App\Entity\Author" is not a valid entity or mapped super class.。但是当我添加这个时,教义会抛出一个错误 namespace App\Entity; use App\Helpers\Jsonable; use App\Helpers\MassAssignable; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity(repositoryClass="App\Repository\AuthorRepository") * @ORM\Table(name="authors") */ class Author { use MassAssignable; use Jsonable; /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") * @var int */ protected $id; /** * @ORM\Column(type="string") * @var string */ protected $name;

$config = Setup::createAnnotationMetadataConfiguration([
    __DIR__.'/../src/Entity/'
]);


$app['db.em'] = EntityManager::create($app['db'], $config);

我的配置没有其他选项

default-allow-internal

1 个答案:

答案 0 :(得分:1)

您正在使用SimpleAnnotationReader,它无法从未直接导入的名称空间加载注释。您可以通过传递false作为元数据配置的第5个参数来轻松地进行切换。

public static function createAnnotationMetadataConfiguration(array $paths, $isDevMode = false, $proxyDir = null, Cache $cache = null, $useSimpleAnnotationReader = true)

所以在您的情况下:

$config = Setup::createAnnotationMetadataConfiguration(
    [__DIR__.'/../src/Entity/'],
    false,
    null,
    null,
    false
]);