我正在使用symfony2 API平台从mongodb数据库生成一个API,但我得到了以下错误:hydra:description:"找不到类型为"AppBundle\Document\article"的对象的资源,
我有两个mongodb文档用户和文章,每个用户都有多篇文章,所以我试图列出所有用户的所有文章标题,这样我就可以得到这样的东西:
{
@id: "/user/53edb6200cf2400d584c2617",
@type: "user",
class: "de.freelancer.mongo.domain.User",
email: "feer@de.com",
displayname: "feer",
withnewsletter: false,
language: "de_DE",
active: true,
admin: false,
articles : ['article1','article2','article3']
}
这是我的代码:
用户文档
<?php
namespace AppBundleDocument;
use DoctrineCommonCollectionsArrayCollection;
use DoctrineODMMongoDBMappingAnnotations as MongoDB;
use DunglasApiBundleAnnotationIri;
use SymfonyComponentValidatorConstraints as Assert;
/**
@MongoDBDocument
@MongoDBDocument(collection="user")
/
class User{
/*
@MongoDBId(strategy="AUTO") */
private $id;
/**
@MongoDBReferenceMany(targetDocument="articles", mappedBy="user") */
private $articles;
public function __construct()
{
$this->articles = new ArrayCollection();
}
/**
*/
public function getArticles()
{
return $this->articles;
}
}
文章文档
<?php
namespace AppBundleDocument;
use DoctrineCommonCollectionsArrayCollection;
use DoctrineODMMongoDBMappingAnnotations as MongoDB;
use DunglasApiBundleAnnotationIri;
use SymfonyComponentValidatorConstraints as Assert;
/**
@MongoDBDocument
@MongoDBDocument(collection="article")
/
class article
{
/*
@MongoDBId(strategy="AUTO") */
private $id;
/**
@MongoDBReferenceOne(targetDocument="user", inversedBy="articles") */
private $user;
/**
*/
public function setUser(userProfile $user)
{
$this->user = $user;
return $this;
}
/**
*/
public function getUser() {
return $this->user;
}
}
有人能帮我拿到用户文章的清单吗
感谢
API平台管理的每个类都需要用@ApiPlatformCoreAnnotationApiResource
注释(或YAML或XML中的等效注释)进行标记。
目前还没有本地MongoDB支持(但这是一项正在进行的工作)。
您仍然可以使用自定义数据提供商自行添加MongoDB支持,但如果您是API平台的新手,则应尝试使用Doctrine ORM并首先遵循官方教程:https://api-platform.com/docs/distribution/