我在这里附上了示例代码。查询返回整个数据库的 映射而不是要查询的数据,或者错误 抽象水合器类。
这是映射器的代码:-
<?php
namespace HelpostApi'Document;
use Doctrine'ODM'MongoDB'Mapping'Annotations as ODM;
/** @ODM'Document(collection="posts") */
class Post
{
/** @ODM'Id */
private $id;
/** @ODM'Field(type="string") */
private $postTitle;
/**
* @param field_type $postTitle
*/
public function setPostTitle($postTitle)
{
$this->postTitle = $postTitle;
}
/**
* @param field_type $postTitle
*/
public function getPostTitle()
{
return $this->postTitle;
}
}
?>
这是控制器的代码,包含查询功能:-
<?php
namespace HelpostApi'Controller;
use Zend'Mvc'Controller'AbstractRestfulController;
use HelpostApi'Document'Post;
class PostController extends AbstractRestfulController {
public function getList()
{
$dm = $this->getServiceLocator()->get('doctrine.documentmanager.odm_default');
print_r( $dm->createQueryBuilder('HelpostApi'Document'Post')
->hydrate(false)
->getQuery()
->getSingleResult()
->execute()
);
}
?>
如果您的查询很简单,您可能更喜欢使用内置的 ODM 方法之一:
$this->dm->getRepository('HelpostApi'Document'Post')->find($id);
或
$criteria=array('key'=>'value');
$this->dm->getRepository('HelpostApi'Document'Post')->findOneBy($criteria);
每个都将返回单个 HelpostApi''Document''Post 对象或 NULL。