gpt4 book ai didi

php - 查询结果部分分组

转载 作者:行者123 更新时间:2023-11-29 21:35:43 26 4
gpt4 key购买 nike

我的存储库中有一个自定义查询,它可以通过接受邮政编码或城市名称作为值来获取结果。

这些值用于自动完成文本输入。

public function findByZipOrCity($cz)
{


$qb = $this->createQueryBuilder('z');

if (substr($cz, 0, 1) == "0") {
$cz = substr($cz, 1);
$qb
->select('z')
->where($qb->expr()->orX(
$qb->expr()->like('z.city', ':czRequest'),
$qb->expr()->like('z.code', ':czRequest')
))
->andWhere('z.code <= :smaller')
->setParameter('czRequest', $cz . '%')
->setParameter('smaller', 9999);
} else {
$qb
->select('z')
->where($qb->expr()->orX(
$qb->expr()->like('z.city', ':czRequest'),
$qb->expr()->like('z.code', ':czRequest')
))
->setParameter('czRequest', $cz . '%');
}


return $qb->getQuery()->getArrayResult();
}

我使用这个 ArrayResult() 来输出自动建议 plgin 接受的 JSON:

$zipcodes = $this->getDoctrine()->getManager()->getRepository("AppBundle:Zip")->findByZipOrCity($zip);

$response = new JsonResponse();
$codes = array();

foreach ($zipcodes as $zipcode) {
$codes[] = array(
'id' => $zipcode['id'],
'country' => $zipcode['country'],
'city' => $zipcode['city'],
'code' => sprintf('%05d', $zipcode['code']),
);
}

$response->setData($codes);

return $response;

因此查询“berli”会给出上述结果,自动建议如下所示: Autosuggest

这工作正常,现在我想更改(任何)函数以使其显示如下: Autosuggest Altered

我必须更改哪些功能?我是否可以对查询进行分组(不过我需要一个有效的 zip),或者只是事后对数组执行“某些操作”?

非常感谢任何提示!

最佳答案

您可以像下面这样更改数组:

foreach ($zipcodes as $zipcode) {
$codes[$zipcode['id']] = array(
'id' => $zipcode['id'],
'country' => $zipcode['country'],
'city' => $zipcode['city'],
'code' => sprintf('%05d', $zipcode['code']),
);
}

关于php - 查询结果部分分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34923959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com