我已经为 zf2 加载了 Doctrine MongoODM 模块。我在控制器中安装了文档管理器,在我尝试持久化文档之前一切都很顺利。它失败并出现此错误:
“[语义错误] 从未导入类 SdsCore\Document\User 中的注释“@Document”。”
DocParser.php 的这一行似乎失败了
if ('\\' !== $name[0] && !$this->classExists($name)) {
它失败是因为$name = 'Document'
, 并且导入的注解类是'Doctrine\ODM\MongoDB\Mapping\Annotations\Doctrine'
这是我的文档类:
namespace SdsCore\Document;
/** @Document */
class User
{
/**
* @Id(strategy="UUID")
*/
private $id;
/**
* @Field(type="string")
*/
private $name;
/**
* @Field(type="string")
*/
private $firstname;
public function get($property)
{
$method = 'get'.ucfirst($property);
if (method_exists($this, $method))
{
return $this->$method();
} else {
$propertyName = $property;
return $this->$propertyName;
}
}
public function set($property, $value)
{
$method = 'set'.ucfirst($property);
if (method_exists($this, $method))
{
$this->$method($value);
} else {
$propertyName = $property;
$this->$propertyName = $value;
}
}
}
这是我的动作控制器:
public function indexAction()
{
$dm = $this->documentManager;
$user = new User();
$user->set('name', 'testname');
$user->set('firstname', 'testfirstname');
$dm->persist($user);
$dm->flush;
return new ViewModel();
}