无法在分页结果上将数组字段重命名为FIELDNAME类型

时间:2015-12-16 15:43:02

标签: php mysql pagination zend-framework2 propel2

我只需要将所有结果字段从PHPNAME类型重命名为FIELDNAME。我正在运行这样的查询:

$members = MemberQuery::create()->filterByOrganizerId($organizerId)
        ->setFormatter($formatter)
        ->useTableOneQuery()
            ->useTableTwoQuery()
                ->where('TableTwo.Status != ?', TableTwo::STATUS_FAILED)
            ->endUse()
        ->endUse()
        ->groupById()
        ->paginate($page, $pageSize);

$formatter的位置:

    $arrayDataFetcher = new ArrayDataFetcher([]);
    $arrayDataFetcher->setIndexType(TableMap::TYPE_FIELDNAME);

    $formatter= new ArrayFormatter();
    $formatter->setDataFetcher($arrayDataFetcher);

但是每个数组仍然具有PHPNAME字段名。当我没有对结果进行分页并只使用find()时,我可以在结果上使用toArray,一切都没问题,但我无法弄清楚如何对分页结果做同样的事情

1 个答案:

答案 0 :(得分:0)

解决方案非常简单。只需在结果上使用toArray()即可。不要相信自动完成。 IDE不显示该方法,但它存在!信任文档,请检查here,您会看到评论表明分页结果的行为与集合相似,这正是我们所需要的。