我有这个错误:
致命错误:未捕获的异常 "Doctrine''Common''Persistence''Mapping''MappingException" '文件映射驱动程序必须具有有效的目录路径,但是 给定路径 [路径/到/我的/实体] 似乎不正确
我在我的模块中.php有这个:
'doctrine' => array(
'driver' => array(
// defines an annotation driver with two paths, and names it `my_annotation_driver`
'my_annotation_driver' => array(
'class' => 'Doctrine'ORM'Mapping'Driver'AnnotationDriver',
'cache' => 'array',
'paths' => array(
__DIR__ . '/../src/Realez/Entity',
'another/path'
),
),
// default metadata driver, aggregates all other drivers into a single one.
// Override `orm_default` only if you know what you're doing
'orm_default' => array(
'drivers' => array(
// register `my_annotation_driver` for any entity under namespace `My'Namespace`
'Realez/Entity' => 'my_annotation_driver'
)
)
)
)
我遇到了完全相同的问题。我通过在教义期望我存储实体的位置创建一个空的Entity
目录来解决它。您所要做的就是在以下位置创建一个空的Entity
目录:__DIR__ . '/../src/Realez/Entity'
。
修改 module.config.php 文件。
return array(
'doctrine' => array(
'driver' => array(
__NAMESPACE__.'_driver' => array(
'class' => 'Doctrine'ORM'Mapping'Driver'AnnotationDriver',
'cache' => 'array',
'paths' => array(__DIR__ . '/../src/'.__NAMESPACE__.'/Entity')
),
'orm_default' => array(
'drivers' => array(
__NAMESPACE__''Entity' => __NAMESPACE__.'_driver'
),
),
),
),
);
**File mapping drivers must have a valid directory path, however the given path [path/to/my/entities]**
这意味着您在该目录中没有实体文件夹
您只需要在该位置创建一个
确保您的paths
正确无误。
__NAMESPACE__ . '_driver' => [
'class' => AnnotationDriver::class,
'cache' => 'array',
'paths' => [__DIR__ . '/../src/Entity/'],
// or: 'paths' => [__DIR__ . '/../src/Entity/'.__NAMESPACE__.'/Entity']
],
'orm_default' => [
'drivers' => [
__NAMESPACE__ . ''Entity' => __NAMESPACE__ . '_driver'
]
],
您也可以尝试使用原则命令行工具清除元数据缓存:
./doctrine-module orm:clear-cache:metadata