如何从结果中的键中删除表名。
$query = Doctrine_Core::getTable('Apps')
->createQuery('a')
->select("DATE_FORMAT(`created_at`,'%Y/%m') as Month,count(*) as Applications")
->groupBy(" year(`created_at`) , month(`created_at`)");
$query->setHydrationMode(Doctrine::HYDRATE_NONE);
给我一些像
的东西 {
"a_Month": "2012/09",
"a_Applications": "3447"
},
{
"a_Month": "2012/10",
"a_Applications": "565"
},
{
"a_Month": "2012/11",
"a_Applications": "689"
}...
我需要得到像
这样的东西 {
"Month": "2012/09",
"Applications": "3447"
},
{
"Month": "2012/10",
"Applications": "565"
},
{
"Month": "2012/11",
"Applications": "689"
}...
如果没有前面的表名,有没有办法做到这一点?
答案 0 :(得分:1)
我不太了解Doctrine所以可能会有一些原生的东西,但你可以试试这个($arr
是你的结果数组):
array_map(function ($k, $v) use (&$arr){
$ke = str_replace("a_", "", $k);
$arr[$ke] = $v;
unset($arr[$k]);
}, array_keys($arr), $arr);
答案 1 :(得分:1)
内部Doctrine使用自己的列名来构建查询。您指定的列名称将在水合过程中应用于结果。因为您使用了HYDRATE_NONE
,所以您可以获得Doctrine的名称,因为结果集上没有进行水合作用。
使用HYDRATE_ARRAY
模式,您将获得一个包含您自己分配的密钥的数组。