Flu*_*key 8 doctrine symfony doctrine-orm doctrine-odm
我正在尝试使用DoctrineMongoDBBundle,但是,我遇到了一个问题.
在我的config.yml中,我有:
doctrine_mongodb:
connections:
default:
server: mongodb://localhost:27017
options:
connect: true
default_database: symfony2
document_managers:
default:
auto_mapping: true
Run Code Online (Sandbox Code Playgroud)
我的User.php类:
<?php
namespace HALL\HelloWorldBundle\Document;
use FOS\UserBundle\Document\User as BaseUser;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\Document
*/
class User extends BaseUser
{
/** @MongoDB\Id(strategy="auto") */
protected $id;
public function __construct()
{
parent::__construct();
// your own logic
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行命令时:
php app/console doctrine:mongodb:generate:documents HALLHelloWorldBundle
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
[Doctrine\Common\Annotations\AnnotationException]
[语义错误]类HALL\HelloWorldBundle\Document\User中的注释"@Doctrine\ODM\MongoDB\Mapping\Annotations\Document"不存在,或者无法自动加载.
有什么想法吗?注释被明确引用.
找到解决方案
在app/autoload.php中,我需要添加:
Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver::registerAnnotationClasses();
Run Code Online (Sandbox Code Playgroud)
啊,我希望文件能告诉我这个......
小智 4
像 Jamie 的解决方案中那样注册注释对我来说不起作用。它解决了这个问题,但意味着注释对象无法从缓存中反序列化。像这样注册注释:
AnnotationRegistry::registerFile(__DIR__.'/../vendor/doctrine-mongodb-odm/lib/Doctrine/ODM/MongoDB/Mapping/Annotations/DoctrineAnnotations.php');
Run Code Online (Sandbox Code Playgroud)
意味着原来的问题已经解决,没有引入与缓存相关的问题。
| 归档时间: |
|
| 查看次数: |
6861 次 |
| 最近记录: |