【问题标题】:Symfony Paginator, error @EnumSymfony 分页器,错误 @Enum
【发布时间】:2015-04-22 19:38:50
【问题描述】:

我正在尝试使用 Doctrine 和 Doctrine 类 Paginator 为查询添加分页:

    $qb = $this->_em->createQueryBuilder();
    $qb->select(array('a.id'))
            ->from('MyProjectBundle:Account', 'a')
            ->leftjoin('a.first', 'fd')
            ->leftjoin('a.second', 'fr')
            ->where('a != ?1')
            ->setParameters(array(1 => $account))
            ->setFirstResult(($page-1) * $per_page)
            ->setMaxResults($per_page);

就像在 Paginator 的文档中一样,我这样做了:

return new Paginator($qb);

我有这个错误:

{

    "code": 500,
    "message": "[Semantical Error] The annotation \"@Enum\" in property Doctrine\\ORM\\Mapping\\GeneratedValue::$strategy was never imported. Did you maybe forget to add a \"use\" statement for this annotation?"

}

我包含use Doctrine\ORM\Tools\Pagination\Paginator;,但我不知道为什么会出现此错误?

【问题讨论】:

  • 这里有同样的问题。您在 Paginator 旁边导入什么? (我不使用 Paginator,所以它不是来自那个)
  • 教义2的版本是什么?

标签: php symfony doctrine-orm pagination doctrine


【解决方案1】:

您是否在返回分页器实例后尝试使用 JMSSerializer 之类的东西对其进行序列化?如果是这样,则序列化程序不知道如何序列化分页器实例,并且会给您一个(非常无用的)错误,例如您的错误。相反,您必须以它可以使用的格式给它一份结果副本,例如:

$serializableResults = $paginator->getIterator()->getArrayCopy();
$serializer->serialize($serializableResults);

【讨论】:

    猜你喜欢
    • 2017-03-13
    • 2013-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多