在链配置的名称空间中找不到类“ App \ Document \ User”

时间:2018-11-24 19:53:30

标签: php mongodb symfony4

我刚刚用symfony4.1放置了mongodb。

当我想在数据库中保留一个简单的用户时,出现此错误(标题):

  

未捕获的PHP异常学说\ Common \ Persistence \ Mapping \ MappingException:“在配置链的命名空间中找不到类'App \ Document \ User'

enter image description here

这是我的控制器:

/**
 * @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;

    // ...
}

有人有想法吗?

非常感谢!

1 个答案:

答案 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: ~