Symfony + Doctrine ODM"在链配置的命名空间中找不到类CoreBundle / Document"

时间:2015-11-27 11:13:39

标签: php symfony doctrine doctrine-odm

我无法找到导致此问题的原因。我有一个名为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

编辑:更改了标题。

2 个答案:

答案 0 :(得分:1)

尝试更改您的命名空间:

namespace Mokapot\CoreBundle\Document;

目录:

src/CoreBundle/Document

官方文件:

  

假设您正在构建需要显示产品的应用程序。甚至没有考虑Doctrine或MongoDB,您已经知道需要Product对象来表示这些产品。在AcmeStoreBundle的Document目录中创建此类:

答案 1 :(得分:0)

我找到了解决方案。我将prefix变量更改为

prefix: CoreBundle\Entity