Doctrine MongoODM Moduleforzf2をロードしました。コントローラ内にドキュメントマネージャがあり、ドキュメントを永続化しようとするまではすべて順調でした。このエラーで失敗します:
"[セマンティックエラー]クラス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();
}