我刚刚用symfony4.1放置了mongodb。
当我想在数据库中保留一个简单的用户时,出现此错误(标题):
未捕获的PHP异常学说\ Common \ Persistence \ Mapping \ MappingException:“在配置链的命名空间中找不到类'App \ Document \ User'
这是我的控制器:
/**
* @Route("/mongoTest")
* @Method("GET")
* @param DocumentManager $dm
* @return JsonResponse
*/
public function mongoTest(DocumentManager $dm)
{
$user = new User();
$user->setEmail("hello@medium.com");
$user->setFirstname("Matt");
$user->setLastname("Matt");
$user->setPassword(md5("123456"));
$dm->persist($user);
$dm->flush();
return new JsonResponse(array('Status' => 'OK'));
}
配置:
doctrine_mongodb:
connections:
default:
server: "%mongodb_server%"
options: {}
default_database: "%mongodb_database_name%"
document_managers:
default:
auto_mapping: true
default_commit_options: ~
这是我的文档:
<?php
namespace App\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\Document
*/
class User
{
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\Field(type="string")
*/
protected $firstname;
/**
* @MongoDB\Field(type="string")
*/
protected $lastname;
/**
* @MongoDB\Field(type="string")
*/
protected $email;
/**
* @MongoDB\Field(type="string")
*/
protected $password;
/**
* @MongoDB\Field(type="date")
*/
protected $create_date;
// ...
}
有人有想法吗?
非常感谢!
答案 0 :(得分:0)
我找到了答案:
我不使用捆绑包。
doctrine_mongodb:
connections:
default:
server: "%mongodb_server%"
options: {}
default_database: "%mongodb_database_name%"
document_managers:
default:
mappings:
# ...
App:
type: annotation
dir: "%kernel.root_dir%/../src/Document"
is_bundle: false
prefix: App\Document
alias: App
default_commit_options: ~