【发布时间】:2020-08-19 07:50:36
【问题描述】:
我在我的应用程序中使用 API 平台,我创建了 API 平台的自定义分页器,但响应没有转换为 hydra 响应:
代码库:
use ApiPlatform\Core\Bridge\Doctrine\Orm\Paginator as Paginator;
use Doctrine\ORM\Tools\Pagination\Paginator as DoctrinePaginator;
public function findByExampleField($page, $items)
{
$firstResult = ($page - 1) * $items;
$queryBuilder = $this->createQueryBuilder('c')
->orderBy('c.id', 'ASC');
$query = $queryBuilder->getQuery()
->setFirstResult($firstResult)
->setMaxResults($items);
$dp = new DoctrinePaginator($query);
$po = new Paginator($dp);
return $po;
}
使用此代码,响应是正常数据而不是 hydra 响应
【问题讨论】:
-
看起来几乎像api-platform.com/docs/core/pagination/#custom-controller-action,但最终,它是不同的。也许您想更紧密地重新创建它...?具体来说,该链接上的示例代码不调用 getQuery ...
-
@Jakumi 也直接返回数据而不是 hydra 响应
-
你有Content-Type application/ld+json header吗?
-
@shvv 是的,我将 application/ld+json 添加到标题中,但也有错误
-
你想达到什么目的?您的自定义分页器为现有分页器添加了什么?能举个例子吗?
标签: symfony doctrine-orm doctrine api-platform.com