我无法找到导致此问题的原因。我有一个名为CoreBundle(src / CoreBundle)的包,其中有一个Entity目录(src / CoreBundle / Entity)。该目录存储所有实体。目前只有用户实体(src / CoreBundle / Entity / User.php)。以下是内容:
namespace Mokapot\CoreBundle\Entity;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use Symfony\Component\Security\Core\User\UserInterface;
/**
* @MongoDB\Document(collection="users")
*/
class User implements UserInterface {
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\String
*/
protected $username;
/**
* @MongoDB\String
*/
protected $password;
/**
* @MondoDB\Collection
*/
private $roles;
public function getRoles() {
$roles = $this->roles;
if(empty($roles)) {
$roles = ['ROLE_USER'];
}
return array_unique($roles);
}
public function setRoles(array $roles) {
$this->roles = $roles;
}
public function getSalt() {
return;
}
public function eraseCredentials() {
}
public function getId() {
return $this->id;
}
public function setId($id) {
$this->id = $id;
}
public function getUsername() {
return $this->username;
}
public function setUsername($username) {
$this->username = $username;
}
public function getPassword() {
return $this->password;
}
public function setPassword($password) {
$this->password = $password;
}
}
这是我的config.yml for doctrine:
doctrine_mongodb:
connections:
default:
server: "%dbhost%"
options: {}
document_managers:
default:
database: "%dbname%"
auto_mapping: false
mappings:
CoreBundle:
mapping: true
type: annotation
dir: Entity
prefix: ~
alias: ~
is_bundle: true
编辑:更改了标题。
答案 0 :(得分:1)
尝试更改您的命名空间:
namespace Mokapot\CoreBundle\Document;
目录:
src/CoreBundle/Document
官方文件:
假设您正在构建需要显示产品的应用程序。甚至没有考虑Doctrine或MongoDB,您已经知道需要Product对象来表示这些产品。在AcmeStoreBundle的Document目录中创建此类:
答案 1 :(得分:0)
我找到了解决方案。我将prefix
变量更改为
prefix: CoreBundle\Entity