我在Symfony
项目中编写了一个api调用,该调用使用下面定义的查询返回实体中的所有字段。。
现在,我只需要定义三个字段,如“id”、“name”、“value”,并从当前存储在数据库中的字段中提取值。
public function getChartData() {
$myResults = $this->getMyRepository()
->createQueryBuilder('s')
->groupBy('s.totalCollected')
->orderBy('s.id', 'ASC')
->getQuery()
->getArrayResult();
$result = array("data" => array());
foreach ($myResults as $myResult => $label) {
$result['data'][$schoolResult] = $label["id"];
$result['data'][$schoolResult] = $label["name"];
$result['data'][$schoolResult] = $label["totalCollected"];
}
}
问题是它只返回
totalCollected
字段。其中一个错误是对数组上的成员函数的调用,等等,我无法找到从数据库中提取数据的方法。。。
最佳答案
我在你的代码中看不到$schoolResult
是从哪里来的,但让我们猜猜它是某种字符串键。
注意,您试图在同一个键上设置3个值,因此只剩下最后一个。
看看:
$a = array();
$a["key"] = 4;
$a["key"] = 6;
很容易看出
$a["key"]
将包含6而不是4或两者。当你这样做时:
foreach ($myResults as $myResult => $label) {
$result['data'][$schoolResult] = $label["id"];
$result['data'][$schoolResult] = $label["name"];
$result['data'][$schoolResult] = $label["totalCollected"];
}
您覆盖了
$result['data'][$schoolResult]
中的数据,因此只有trytotalCollected
作为最后一个要设置的数据存在。为了解决这个问题,您可以使用:
foreach ($myResults as $myResult => $label) {
$result['data'][$schoolResult]["id] = $label["id"];
$result['data'][$schoolResult]["name"] = $label["name"];
$result['data'][$schoolResult]["totalCollected"] = $label["totalCollected"];
}
希望能有帮助!
关于php - 从数据库到数组获取多个字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53923375/