我使用FOSRestBundle和JMSSerializerBundle爲我的網站設置REST服務。「序列化數據不支持資源。」當使用FOSRestBundle和Paginator
我在一個返回Paginator對象的實體庫上做了一個自定義方法。當我在普通網站上使用該方法時,該方法效果很好,但是當我想使用REST路由方法時,會引發此錯誤(XML或JSON輸出會引發相同的錯誤):
「在序列化數據中不受支持。「
我真的不知道在哪裏搜索,因爲這個錯誤對我來說並不是很明確。
這裏是我的AdsRestController.php:
<?php
namespace MyProject\MainBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use FOS\RestBundle\Controller\Annotations\View;
use FOS\RestBundle\Controller\Annotations\Get;
class AdsRestController extends Controller
{
/**
* @View
* @Get("/ads/list/all/{page}", requirements={"page" = "\id+"}, defaults={"page" = 1})
*/
public function getAdsListAllAction($page) {
$theAds = $this->getDoctrine()->getRepository('MyProjectMainBundle:Ads')->getAds($page);
return $theAds;
}
}
和我AdsRepository.php:
<?php
namespace MyProject\MainBundle\Entity;
use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\Tools\Pagination\Paginator;
class AdsRepository extends EntityRepository
{
public function getAds($page=1, $maxPerPage=10)
{
$query = $this->createQueryBuilder('a')
->orderBy('a.date', $order)
;
$query->getQuery();
$query
->setFirstResult(($page-1) * $maxPerPage)
->setMaxResults($maxPerPage)
;
return new Paginator($query, true);
}
}
任何幫助,將不勝感激!
謝謝。
感謝您的回答。那是我第一次做的。但是toArray()方法不存在! – Anthony 2015-02-08 12:06:02
我得到的錯誤:'嘗試調用方法「toArray」類「Doctrine \ ORM \ Tools \ Pagination \ Paginator' – Anthony 2015-02-08 12:12:29
對不起,我沒有測試它。 paginator as $ entry){ $ result [] = $ entry; } return $ result – ToBe 2015-02-08 12:18:13