在我的数据库中,我有一个名为 Graphique 的实体。这是以下架构:
class Graphique
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var decimal
*
* @ORM\Column(name="index", type="decimal", precision=9, scale=3, nullable=false)
*/
private $index;
/**
* @var datetime
*
* @ORM\Column(name="date", type="datetime", nullable=false)
*/
private $date;
/*getters and setters*/
根据我的数据库架构(示例),这是索引的一些值:
----------------------------------
id | index | dateTime |
----------------------------------
1 | 1700.000 | dateTime datas|
----------------------------------
2 | 1200.000 | dateTime datas|
----------------------------------
3 | 1200.000 | dateTime datas|
----------------------------------
4 | 1304.000 | dateTime datas|
----------------------------------
etc...| etc... | etc... |
我将此方法放入 Controller 中:
$em=$this->getDoctrine()->getManager();
$queryIndex = $em->createQuery( 'SELECT g.index
FROM MySpaceMyBundle:Graphique g');
$array = array_map('current', $queryIndex);
$response = new Response();
$data = json_encode($array);
$response->headers->set('Content-Type', 'application/json');
$response->setContent($data);
return $response;
它将这个返回到我的 json 响应中:
["1700.000","1200.000","1200.000","1304.000","1800.000","2012.000","2048.000","1048.000","3000.000","5421.000"]
但我需要这个简单的数组结果(而不是上面我给你的 json 响应):
[1700.000,1200.000,1200.000,1304.000,1800.000,2012.000,2048.000,1048.000,3000.000,5421.000]
我需要在 json 响应中返回一个简单数组,以便将这些十进制值显示到 highchart 图形中。
我该如何继续?我已经尝试了一些 Doctrine 方法,例如 ->getArrayresult()
、->getScalarResult()
、->toArray()
,但结果是相同。我需要将查询结果放入一个简单的数组中。
最佳答案
json_encode($array, JSON_NUMERIC_CHECK);
这个解决方案应该对您有帮助。
关于php - 使用简单的 JSON 数组制作 Doctrine 查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30027309/