5

我有这个错误:

致命错误:未捕获的异常“Doctrine\Common\Persistence\Mapping\MappingException”与消息“文件映射驱动程序必须具有有效的目录路径,但是给定的路径 [path/to/my/entities] 似乎不正确

我的module.config.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'
            )
        )
    )
)
4

4 回答 4

8

我有完全相同的问题。Entity我通过在学说希望我存储实体的位置创建一个空目录来解决它。您所要做的就是在以下位置创建一个空Entity目录: __DIR__ . '/../src/Realez/Entity'.

于 2013-10-29T11:25:56.153 回答
1

修改你的 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'
                ),
            ),
        ),
    ),                 
);
于 2013-09-12T22:08:11.567 回答
1
**File mapping drivers must have a valid directory path, however the given path [path/to/my/entities]** 

这意味着您在该目录中没有实体文件夹

您只需要在该位置创建一个

于 2017-03-16T11:59:43.793 回答
0

确保您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
于 2017-07-27T13:41:14.927 回答