Единственное, что мне нужно, это переименовать все поля результатов из типа 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
на результат и все в порядке, но я не могу понять, как сделать то же самое с нумерацией страниц
Решение довольно простое. Просто используйте toArray()
на ваш результат. Не доверяйте автозаполнению. IDE не показывает этот метод, но он существует! Доверительная документация, проверка Вот, и вы увидите комментарий, что постраничные результаты ведут себя как сбор, это именно то, что нам нужно.
Других решений пока нет …