【问题标题】:Can't rename array fields to FIELDNAME type on paginated results无法在分页结果中将数组字段重命名为 FIELDNAME 类型
【发布时间】:2015-12-16 15:43:01
【问题描述】:

我只需要将所有结果字段从 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,一切都很好,但我不知道如何对分页结果做同样的事情

【问题讨论】:

    标签: php mysql pagination zend-framework2 propel2


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      相关资源
      最近更新 更多