我开始使用 silex 中的教义和来自文档的简单注释@Entity
它奏效了。现在我看到symfony使用导入use DoctrineORMMapping as ORM;
和@ORMEntity
。但是当我添加这个时,教义抛出了一个错误Class "AppEntityAuthor" is not a valid entity or mapped super class.
namespace AppEntity;
use AppHelpersJsonable;
use AppHelpersMassAssignable;
use DoctrineORMMapping as ORM;
/**
* @ORMEntity(repositoryClass="AppRepositoryAuthorRepository")
* @ORMTable(name="authors")
*/
class Author
{
use MassAssignable;
use Jsonable;
/**
* @ORMId
* @ORMGeneratedValue
* @ORMColumn(type="integer")
* @var int
*/
protected $id;
/**
* @ORMColumn(type="string")
* @var string
*/
protected $name;
我的配置没有额外的操作
$config = Setup::createAnnotationMetadataConfiguration([
__DIR__.'/../src/Entity/'
]);
$app['db.em'] = EntityManager::create($app['db'], $config);
>您正在使用无法从未直接导入的命名空间加载注释的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
]);